2017-01-22 17 views
1

私はSpringブートとSpringセキュリティで構築されたREST APIを持っています。私は、Spring Securityがデフォルトで現在のユーザーをログアウトするようにドキュメントを読んでいます。/logoutを要求します。しかし、私はこれを動作させるように見えることはできません。 )を使用してAngularJSはあなたがwithHttpOnlyFalseを(使用してチェックするとSpringブート+ Springセキュリティ - ログアウトできません

{ 
    "timestamp": 1485096094269, 
    "status": 404, 
    "error": "Not Found", 
    "message": "No message available", 
    "path": "/login" 
} 
+0

あなたは '.logoutを()'提供されていません。 ;例えば、 https://spring.io/guides/gs/securing-web/。どんなリクエストをしていますか? – jonrsharpe

+0

実際に.logout()を追加しようとしました。私が見たいくつかの異なる例から、しかし効果がありません。ログアウトを有効にするために上記の例を変更することをどのようにお勧めしますか?私が作っているリクエストは、 "/ logout"へのGETリクエストです。 – simbro

+1

うん、設定は間違いなく呼び出されている。私は ".logout.permitAll()"を追加しました。私はPOSTメソッドを使って "/ logout"と同じメッセージを試していて、ログアウトしませんでした。他の人はconfigureメソッドとして何を使用しますか? – simbro

答えて

0

:私は /logoutに要求を行うとき、私は次のエラーが表示され、しかし

@EnableWebSecurity 
@EnableGlobalMethodSecurity(prePostEnabled = true) 
@Configuration 
class WebSecurityConfig extends WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http 
      .authorizeRequests() 
       .anyRequest().fullyAuthenticated() 
       .and() 
      .httpBasic() 
       .and() 
      .csrf().disable(); 
    } 
} 

この

は私のセキュリティ設定であります
.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) 

https://stackoverflow.com/a/43204307/1767316

1

おそらくこの質問に答えるのは少し遅れますが、誰でも役に立つことがあります。

configure()方法は、例えば、logout()呼び出しが欠落していて:

http.authorizeRequests() 
     .anyRequest().fullyAuthenticated() 
     .and() 
     .httpBasic() 
     .and() 
    .logout() // This is missing and is important 
     .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) 
     .logoutSuccessUrl("/login"); 

また、あなたがあなた自身のログインページを設定することができます。

http.authorizeRequests() 
     // this allows the root and resources to be available without logging in 
     .antMatchers("/", "/resources/**").permitAll() 
     // any other type of request will need the credentials 
     .anyRequest().authenticated() 
     .and() 
    // uses the custom login form 
    .formLogin() 
     .loginPage("/login") 
     .defaultSuccessUrl("/home") // redirect to home page 
     .failureUrl("/login?error") // redirect to error page 
     .permitAll() 
     .and() 
    // logout and redirect to login page 
    .logout() 
     .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) 
     .logoutSuccessUrl("/login"); 
関連する問題