Я новичок в Spring Security и использую Springboot, Mysql для создания примера приложения с аутентификацией с использованием jwt. Однако я заметил, что при запросе на вход в систему, когда происходит аутентификация, Spring Security извлекает все лениво загруженные свойства (в моем случае Роли, Личные данные). Есть ли способ сообщить Spring Security, чтобы он игнорировал дополнительный вызов для получения PersonalDetails.
Свойства приложения
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE
Модель пользователя
public class User {
private Long id;
private String username;
private String password;
@OneToOne(fetch=FetchType.LAZY, mappedBy="user")
private PersonalDetails personalDetails;
@ManyToMany(fetch = FetchType.LAZY)
private Set<Role> roles = new HashSet<>();
// getters and setters
}
AuthController
@PostMapping("/signin")
public ResponseEntity<?> signin(@Valid @RequestBody LoginRequest loginRequest) {
Authentication authentication =
authenticationManager
.authenticate(
new UsernamePasswordAuthenticationToken(
loginRequest.getUsernameOrEmail(),
loginRequest.getPassword()
)
);
SecurityContextHolder.getContext().setAuthentication(authentication);
String jwtToken = tokenProvider.generateToken(authentication);
return ResponseEntity.ok(new JwtResponse(jwtToken));
}