diff --git a/src/main/java/com/rudakova/media_archive/google/GoogleService.java b/src/main/java/com/rudakova/media_archive/google/GoogleService.java index e25a83acb33104863f01a308741e74f11bb5b01e..4d0743cdb996dc9bfa4ad3f473190473864cf45b 100644 --- a/src/main/java/com/rudakova/media_archive/google/GoogleService.java +++ b/src/main/java/com/rudakova/media_archive/google/GoogleService.java @@ -77,7 +77,8 @@ public class GoogleService { private RestTemplate restTemplate; private Credential getCredentials() throws IOException { - return flow.loadCredential("user"); + String name = authService.getEmail(); + return flow.loadCredential(name == null ? "user" : name); } public AbstractMap<String, Object> getUserInfo() throws IOException { diff --git a/src/main/java/com/rudakova/media_archive/google/GoogleUserInfoResponseClient.java b/src/main/java/com/rudakova/media_archive/google/GoogleUserInfoResponseClient.java index d28eea4c1a3a87fdf590a138612fbaf28d9bd2fa..2dc093e0b0ba46903521a8aca45254a31113b391 100644 --- a/src/main/java/com/rudakova/media_archive/google/GoogleUserInfoResponseClient.java +++ b/src/main/java/com/rudakova/media_archive/google/GoogleUserInfoResponseClient.java @@ -55,6 +55,9 @@ public class GoogleUserInfoResponseClient { account.setToken(oauthToken.getTokenValue()); accountRepository.save(account); + flow.getCredentialDataStore().delete("user"); + flow.getCredentialDataStore().set(account.getEmailAddress(), credential); + return data; } catch (IOException e) { LOG.error("Error in store credential {}", (Object) e.getStackTrace()); diff --git a/src/main/java/com/rudakova/media_archive/service/AuthService.java b/src/main/java/com/rudakova/media_archive/service/AuthService.java index 4a47de5a9224b39e2a415ff88b9ef44e74a82b29..1a98c6036bec93e019b9796f503f9eb4253a11db 100644 --- a/src/main/java/com/rudakova/media_archive/service/AuthService.java +++ b/src/main/java/com/rudakova/media_archive/service/AuthService.java @@ -36,6 +36,11 @@ public class AuthService { return accountRepository.findByEmailAddress(authentication.getName()).get(); } + public String getEmail() { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + return authentication != null ? authentication.getName() : null; + } + public void loggedOutUser() { SecurityContextHolder.getContext().setAuthentication(null); } diff --git a/target/MediaArchive-1.0-SNAPSHOT.jar b/target/MediaArchive-1.0-SNAPSHOT.jar index 1d9312f4e5cf431803b5a6723b49db6b4c5a1fbc..44773d4447b77849cfc91bf11d7705ac590a0556 100644 Binary files a/target/MediaArchive-1.0-SNAPSHOT.jar and b/target/MediaArchive-1.0-SNAPSHOT.jar differ