У меня есть этот код, использующий последний:
Optional<String> subject = Optional.ofNullable(claims.get().getSubject());
if (subject.isPresent()) {
UserDetails userDetails = userDetailsService.loadUserByUsername(subject.get());
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails,
null, userDetails.getAuthorities());
authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
logger.debug("Security - The request authenticated fine from the JWT Access token");
return authentication;
} else {
throw new BadCredentialsException("The authentication token " + optToken + " did not contain a subject.");
}
Я пытаюсь реорганизовать это, используя метод ifPresent
.
Должен ли я иметь вызов службы userDetailsService.loadUserByUsername
перед вызовом функционального метода? Если да, то как? Как вернуть объект типа, отличного от типа функционального метода?
Я на Яве 12.