Wie kann ich die Fehlerbehandlung in der JWT-Authentifizierung mit Spring Security 6 anpassen?
Posted: 31 Dec 2024, 12:27
Ich habe einen einfachen Ressourcenserver mit Spring Boot unter Verwendung der folgenden Abhängigkeit implementiert.
Die meisten meiner Anforderungen werden mit dem integrierten Standard-Workflow erfüllt. Allerdings wäre es schön, wenn ich den Fehlerbehandlungsteil anpassen könnte.
Wenn ich derzeit eine nicht autorisierte Anfrage stelle, erhalte ich nur eine leere Antwort mit dem Statuscode 401.

Anstelle von Eine leere Antwort mit nur einem 401-Code, das möchte ich Senden Sie benutzerdefinierte Fehlermeldungen wie „Ungültiges Zugriffstoken“, „Zugriffstoken fehlt“, „Zugriffstoken abgelaufen“ usw. Das würde beim Debuggen sehr helfen.
Ich habe versucht, die Schnittstellen zu implementieren AuthenticationEntryPoint und. Aber ich hatte keinen Erfolg.
Ich habe auf den folgenden Artikel aus den Spring Security-Dokumenten verwiesen:
https://docs.spring .io/spring-security/reference/servlet/oauth2/resource-server/jwt.html
Außerdem ist dies meine Web-Sicherheitskonfiguration:
Kann jemand eine Möglichkeit bereitstellen, Fehlermeldungen im JWT-Authentifizierungsworkflow anzupassen?
Code: Select all
org.springframework.boot
spring-boot-starter-oauth2-resource-server
2.4.12
Wenn ich derzeit eine nicht autorisierte Anfrage stelle, erhalte ich nur eine leere Antwort mit dem Statuscode 401.

Anstelle von Eine leere Antwort mit nur einem 401-Code, das möchte ich Senden Sie benutzerdefinierte Fehlermeldungen wie „Ungültiges Zugriffstoken“, „Zugriffstoken fehlt“, „Zugriffstoken abgelaufen“ usw. Das würde beim Debuggen sehr helfen.
Ich habe versucht, die Schnittstellen zu implementieren AuthenticationEntryPoint und
Code: Select all
AuthenticationFailureHandler
Ich habe auf den folgenden Artikel aus den Spring Security-Dokumenten verwiesen:
https://docs.spring .io/spring-security/reference/servlet/oauth2/resource-server/jwt.html
Außerdem ist dies meine Web-Sicherheitskonfiguration:
Code: Select all
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeHttpRequests((authz) -> authz
.requestMatchers("/public/**").permitAll()
.anyRequest().authenticated()
)
.oauth2ResourceServer(OAuth2ResourceServerConfigurer::jwt);
return http.build();
}
}