Ich habe unten Klasse bekam zum Authentifizieren von Benutzern in einem REST-ServiceCapture-Authentifizierungsfehler in Spring Security
@Service
public class AuthenticationService {
private static final Logger log = LoggerFactory.getLogger(AuthenticationService.class);
@Autowired
private AuthenticationManager authenticationManager;
public void getAuthentication(AccountCredentials credentials) {
log.info("Authentication requested for user: " + credentials.getEmail());
final Authentication authentication = authenticationManager.authenticate(
new UsernamePasswordAuthenticationToken(
credentials.getEmail(),
credentials.getPassword()
)
);
SecurityContextHolder.getContext().setAuthentication(authentication);
}
}
Die Authentifizierung funktioniert gut, aber ich möchte jedes Mal einzuloggen ein Authentifizierungsfehler ist. Die Art und Weise wie es jetzt funktioniert ist, dass ein 403
Status standardmäßig von Spring Security zurückgegeben wird. Wie kann ich Authentifizierungsfehler in einem Protokoll erfassen? Ich habe verschiedene Möglichkeiten ausprobiert, aber der Code wird nie erreicht, nachdem die 403
zurückgegeben wird, gibt es keinen anderen Code ausgeführt. Ich habe auch versucht mit einem try catch
Block, aber das vermasselt den Fluss und ich müsste die 403
Antwort codieren. Ich möchte die 403
Statusmeldung behalten und dass kein anderer Code außer dass es in einem Protokoll erfasst wird, ausgeführt wird.
Sie arbeiten an Spring Security, stattdessen empfehle ich die Integration mit, so dass Sie auch die Ereignisse von Spring Security einer von mehreren [failure events] (http://docs.spring.io/spring-security) zuhören können /site/docs/current/apidocs/org/springframework/security/authentication/event/AbstractAuthenticationFailureEvent.html). –