Skip to content

Commit a1828e3

Browse files
committed
Update session service query
1 parent a3e4fb9 commit a1828e3

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

src/main/java/com/github/throyer/common/springboot/api/domain/repositories/RefreshTokenRepository.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,11 @@ public interface RefreshTokenRepository extends JpaRepository<RefreshToken, Long
2626
""")
2727
public void disableOldRefreshTokens(Long id);
2828

29+
@Query("""
30+
SELECT refresh FROM RefreshToken refresh
31+
JOIN FETCH refresh.user user
32+
JOIN FETCH user.roles
33+
WHERE refresh.code = ?1 AND refresh.available = true
34+
""")
2935
public Optional<RefreshToken> findOptionalByCodeAndAvailableIsTrue(String code);
3036
}

src/main/java/com/github/throyer/common/springboot/api/domain/repositories/UserRepository.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,12 @@ default void deleteAll(Iterable<? extends User> entities) {
4545
""")
4646
public Optional<User> findOptionalByIdAndDeletedAtIsNullFetchRoles(Long id);
4747

48+
@Query("""
49+
SELECT user FROM User user
50+
JOIN FETCH user.roles
51+
WHERE user.email = ?1
52+
""")
53+
public Optional<User> findOptionalByEmailFetchRoles(String email);
54+
4855
public Optional<User> findOptionalByEmail(String email);
4956
}

src/main/java/com/github/throyer/common/springboot/api/domain/services/security/SessionService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public class SessionService {
4040
private RefreshTokenRepository refreshTokenRepository;
4141

4242
public ResponseEntity<TokenResponse> create(TokenRequest request) {
43-
var user = userRepository.findOptionalByEmail(request.getEmail())
43+
var user = userRepository.findOptionalByEmailFetchRoles(request.getEmail())
4444
.filter(session -> session.validatePassword(request.getPassword()))
4545
.orElseThrow(() -> forbidden(CREATE_SESSION_ERROR_MESSAGE));
4646

0 commit comments

Comments
 (0)