2016-12-22 13 views
1

現在、私はAngularjsでSpring OAuth2セキュリティプロジェクトを開発しています。私はoauthサーバーとトークンを取っていると私はヘッダーを解析していますが、ホームページにリダイレクトしようとすると "完全な認証がこのリソースにアクセスする必要があります"がスローされますが、私はログインし、クライアントサーバーはanonymousUserアクセスが拒否されました。Spring Oauth2 Angularjsログインしないでください

@Configuration 
@EnableWebSecurity 
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 
@Override 
public void configure(WebSecurity web) throws Exception { 

    web 
      .ignoring() 
      .antMatchers("/login.html") 
      .antMatchers("/js/**") 
      .antMatchers("/css/**") 
      .antMatchers("/metronic/css/**") 
      .antMatchers("/metronic/js/**") 
      .antMatchers("/metronic/image/**") 
      .antMatchers("/image/**") 
      .antMatchers("/language/**") 
      .antMatchers("/404.html") 
      .antMatchers("/logout") 
      .antMatchers("/kilitEkrani.html") 
      .antMatchers("/metronic/css/fonts/**") 
      .antMatchers("/metronic/fonts/**"); 

} 

@Override 
public void configure(HttpSecurity http) throws Exception { 

    http.authorizeRequests().antMatchers("/css/**", "/metronic/css/**").permitAll() 
      .and().authorizeRequests().antMatchers("/metronic/image/**", "/image/**", "/metronic/css/fonts/**", "/metronic/fonts/**").permitAll() 
      .and().authorizeRequests().antMatchers("/js/**", "/metronic/js/**").permitAll() 
      .and().httpBasic().and().authorizeRequests() 
      .antMatchers("/login.html", "/language/**", "/api/kullanici/user", "/logout", "/kilitEkrani.html", "/404.html").permitAll() 
      .anyRequest().authenticated().and() 
      .addFilterAfter(csrfHeaderFilter(), CsrfFilter.class).csrf().csrfTokenRepository(csrfTokenRepository()).and() 
      .logout() 
      .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) 
      .logoutSuccessUrl("/login.html") 
      .permitAll().and().csrf().disable(); 
} 

private Filter csrfHeaderFilter() { 
    return new OncePerRequestFilter() { 
     @Override 
     protected void doFilterInternal(HttpServletRequest request, 
       HttpServletResponse response, FilterChain filterChain) 
       throws ServletException, IOException { 
      CsrfToken csrf = (CsrfToken) request.getAttribute(CsrfToken.class 
        .getName()); 
      if (csrf != null) { 
       Cookie cookie = WebUtils.getCookie(request, "XSRF-TOKEN"); 
       String token = csrf.getToken(); 
       if (cookie == null || token != null 
         && !token.equals(cookie.getValue())) { 
        cookie = new Cookie("XSRF-TOKEN", token); 
        cookie.setPath("/"); 
        response.addCookie(cookie); 
       } 
      } 
      filterChain.doFilter(request, response); 
     } 
    }; 
} 

private CsrfTokenRepository csrfTokenRepository() { 
    HttpSessionCsrfTokenRepository repository = new HttpSessionCsrfTokenRepository(); 
    repository.setHeaderName("X-XSRF-TOKEN"); 
    return repository; 
} 
} 

これは私のセキュリティ設定です。何か不足していますか?助けてください...

答えて

0

私はあなたが認証サーバーで基本認証を利用することが問題だと思います。基本認証を無効にし、代わりにフォーム認証を使用することができます。

関連する問題