Skip to content

Commit a387e92

Browse files
committed
Change public website token finder return type from optional to list
1 parent bc47d27 commit a387e92

File tree

4 files changed

+8
-6
lines changed

4 files changed

+8
-6
lines changed

src/main/java/org/mskcc/cbio/oncokb/repository/TokenRepository.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public interface TokenRepository extends JpaRepository<Token, Long> {
3030
List<Token> findAllExpiresBeforeDate(Instant date);
3131

3232
@Query("select token from Token token where token.user.login = org.mskcc.cbio.oncokb.config.Constants.PUBLIC_WEBSITE_LOGIN")
33-
Optional<Token> findPublicWebsiteToken();
33+
List<Token> findPublicWebsiteToken();
3434

3535
@Cacheable(cacheResolver = "tokenCacheResolver")
3636
Optional<Token> findByToken(UUID token);

src/main/java/org/mskcc/cbio/oncokb/security/uuid/TokenProvider.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,15 @@ public UUID getPubWebToken() {
108108
Optional<User> user = userRepository.findOneWithAuthoritiesByLogin(PUBLIC_WEBSITE_LOGIN);
109109
if (user.isPresent()) {
110110
Token userToken = new Token();
111-
Optional<Token> tokenOptional = tokenService.findPublicWebsiteToken();
112-
if (!tokenOptional.isPresent()) {
111+
List<Token> pubWebTokens = tokenService.findPublicWebsiteToken();
112+
if (pubWebTokens.isEmpty()) {
113113
Token newToken = getNewToken(user.get().getAuthorities(), Optional.empty());
114114
newToken.setUser(user.get());
115115
userToken = tokenService.save(newToken);
116116
} else {
117-
userToken = tokenOptional.get();
117+
// We may have multiple public website tokens if the daily cronjob generates a new token
118+
// before the expired token cronjob deletes the old token. We will use the token with the later expiration date.
119+
userToken = pubWebTokens.stream().max((token1, token2) -> token1.getExpiration().compareTo(token2.getExpiration())).get();
118120
if (userToken.getExpiration().isBefore(Instant.now())) {
119121
// I want to update the token associated with public website once it's expired
120122
Token newToken = getNewToken(user.get().getAuthorities(), Optional.empty(), Optional.empty());

src/main/java/org/mskcc/cbio/oncokb/service/TokenService.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public interface TokenService {
3737
*/
3838
Optional<Token> findOne(Long id);
3939

40-
Optional<Token> findPublicWebsiteToken();
40+
List<Token> findPublicWebsiteToken();
4141

4242
Optional<Token> findByToken(UUID token);
4343

src/main/java/org/mskcc/cbio/oncokb/service/impl/TokenServiceImpl.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public Optional<Token> findOne(Long id) {
8080
}
8181

8282
@Override
83-
public Optional<Token> findPublicWebsiteToken() {
83+
public List<Token> findPublicWebsiteToken() {
8484
return tokenRepository.findPublicWebsiteToken();
8585
}
8686

0 commit comments

Comments
 (0)