2017-12-28 33 views
1

Können Sie mir mit Sicherheitskonfiguration im Frühjahr Boot-App helfen, den REST-Service macht: Ich habe JWTAuthenticationFilter extends UsernamePasswordAuthenticationFilter, JWTAuthorizationFilter extends BasicAuthenticationFilter und die folgende configure Methode in WebSecurityConfig extends WebSecurityConfigurerAdapter:Wie 401 statt 500 im Frühjahr zurück, wenn ExpiredJwtException

protected void configure(HttpSecurity http) throws Exception { 

    http.cors().and().csrf().disable().authorizeRequests().antMatchers(HttpMethod.POST, SIGN_UP_URL).permitAll() 
       .anyRequest().authenticated().and().addFilter(new JWTAuthenticationFilter(authenticationManager())) 
       .addFilter(new JWTAuthorizationFilter(authenticationManager())) 
       .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); 
    } 

Jetzt wird Fehler 500 zurückgegeben, wenn das JWT-Token abgelaufen ist. Wie und wo kommst du 401 zurück?

Antwort

0

Sie können eine Exception-Handler, zum Beispiel verwenden:

 

    @ControllerAdvice 
    public class YourExceptionHandler extends ResponseEntityExceptionHandler { 

     @ExceptionHandler(YourException.class) 
     public ResponseEntity toResponse(YourException ex, WebRequest request) { 
      return new ResponseEntity(ex.getText(), HttpStatus.UNAUTHORIZED); 
     } 

    } 

+0

ich auf Controller diesen Ansatz verwendet haben, aber in der Nähe, wie ich sagen kann, es auf Authentication Filter funktioniert nicht. Vielleicht nicht schockierend angesichts der Tatsache, dass es mit "Controller" Ratschläge kommentiert. –

Verwandte Themen