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
@Componentpublic class ApiAuthEntryPoint implements AuthenticationEntryPoint {@Overridepublic 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.