1

こんにちは私は私の春のブートアプリケーションで春のセキュリティをimplimented。しかし、ログアウトをクリックすると、リダイレクトURLが必要になります。それを避ける方法は?マイWebSecurityConfigどこでもリダイレクトせずに春のセキュリティでログアウトする

マイLogoutHandler

@Override 
protected void configure(HttpSecurity http) throws Exception 
{ 
    http.csrf().disable() 

      .authorizeRequests() 

      .antMatchers(HttpMethod.POST, "/rest/auth/**").permitAll() 

      .antMatchers("/login").permitAll() 

      .antMatchers("/").permitAll() 

      .antMatchers("/dist/**").permitAll() 

      .antMatchers("/node_modules/**").permitAll() 

      .antMatchers("/src/**").permitAll() 

      .anyRequest().authenticated() 

      .and() 

      .logout().addLogoutHandler(logoutHandler) 

      .and() 

      .addFilter(new JWTAuthenticationFilter(authenticationManager())) 

      .addFilter(new JWTAuthorizationFilter(authenticationManager())); 

    http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); 

} 

@Override 
public void logout(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, 
     Authentication authentication) 
{ 

    try 
    { 
     SecurityContextHolder.getContext().setAuthentication(null); 
     SecurityContextHolder.clearContext(); 
     String responseValue = new ObjectMapper().writeValueAsString("success"); 
     httpServletResponse.setStatus(HttpServletResponse.SC_ACCEPTED); 
     httpServletResponse.addHeader("Content-Type", "application/json"); 
     httpServletResponse.getWriter().print(responseValue); 
    } 
    catch(Exception e) 
    { 
     LOGGER.error("Error", e); 
     String responseValue; 
     try 
     { 
      responseValue = new ObjectMapper().writeValueAsString("failed"); 
      httpServletResponse.setStatus(HttpServletResponse.SC_BAD_REQUEST); 
      httpServletResponse.addHeader("Content-Type", "application/json"); 
      httpServletResponse.getWriter().print(responseValue); 
     } 
     catch(IOException e1) 
     { 
      LOGGER.error("Error", e1); 
     } 
    } 
} 

は、私はちょうどLogoutHandlerで設定され、応答がクライアント側に送信されるようにしたいです。しかし、ログアウトに成功すると、/loginにリダイレクトされます。私は他のURLにリダイレクトされたくありません。私はちょうどクライアント側に応答を送信したい。これを達成する方法は?

答えて

1

これを試してみてください:

... 
.and() 
.logout().logoutSuccessHandler(logoutHandler) 
.and() 
... 
関連する問題