0 Tage Serie
java / expert
Snippet

Verfeinerung von API-Fehlerantworten mit AuthenticationEntryPoint

Der AuthenticationEntryPoint wird ausgelöst, wenn ein nicht authentifizierter Benutzer versucht, auf eine geschützte Ressource zuzugreifen. Die Implementierung ermöglicht die Rückgabe strukturierter JSON-Fehler anstelle von Standard-HTML-Weiterleitungsseiten in REST-APIs.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
@Component
public class ApiAuthEntryPoint implements AuthenticationEntryPoint {
@Override
public void commence(HttpServletRequest request, HttpServletResponse response,
AuthenticationException authException) throws IOException {
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
response.setContentType("application/json");
response.getWriter().write("{\"error\": \"Invalid credentials\", \"timestamp\": \"" + Instant.now() + "\"}");
}
}
spring
Erklärung
1
commence(...)
Methode, die bei fehlgeschlagener Authentifizierung ausgeführt wird und Zugriff auf den Response-Stream bietet.
2
SC_UNAUTHORIZED
Standard HTTP 401 Statuscode, der anzeigt, dass eine Authentifizierung erforderlich ist.