私は、スプリングブートを使用して、スプリングRESTアプリケーションを開発しています。私は、角JSクライアントを使用してSpring REST APIを使用しています。スプリングブートレストCORSのスプリングセキュリティ認証の問題
私が使用しているスタックは次のとおりです。
Spring Boot 1.4.2 , Spring Security , Angular JS , Tomcat 8
私の問題です:
1)ログイン時、ユーザーが正常に認証されます。カスタム認証成功ハンドラは200個のステータスコードを返します。
2)クリントはproctedリソースにアクセスするための別の要求を送信するときに認証成功後、HttpSessionのが
3 NULLである)SecurityContextPersistenceFilter
はHttpSession
からSecurityContext
を取得しようとすると、それがヌルと として返されるためたと再びサーバは/login
リソース
4)に要求を送信しますので、私の質問は以下のとおりです。
1)なぜhttpsesionは、2番目の要求のためにnullであるのですか?
2)私は、春のセキュリティが、最初の成功認証後にクッキーとしてJSESSIONID
を返すことを確認しました。
3)その後、クライアントはこのJSESSIONID
を要求していないので、2番目の要求は同じセッションにはなりません。
4)SESSION
が設定されていない場合、SecurityContext
はどのように取得されますか?
私はここに
EDIT 1続行することはできませんよよう助けてください:
を私は春のセキュリティが提供するメモリのユーザーにデフォルトを使用しています。私のセキュリティ設定が怒鳴るです:スローされauthenticated
発現とアクセス拒否の例外のためにfalseを返すAccessDecisionVoter
:AbstractSecurityInterceptor
:要求は今で失敗している
org.sprin[email protected]9055c2bc:
Principal: anonymousUser; Credentials: [PROTECTED];
Authenticated: true;
Details: org.sprin[email protected]b364:
RemoteIpAddress: 0:0:0:0:0:0:0:1;
SessionId: null;
Granted Authorities: ROLE_ANONYMOUS
:私は認証されたユーザとして、ユーザの下に取得しています
@Configuration
@EnableWebSecurity
@ComponentScan({"com.atul.security"})
public class SecurityConfig extends WebSecurityConfigurerAdapter{
@Autowired
private RESTAuthenticationSuccessHandler authenticationSuccessHandler;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.formLogin().successHandler(authenticationSuccessHandler)
.and()
.csrf().disable()
.authorizeRequests()
.antMatchers(HttpMethod.OPTIONS,"/*").permitAll()
.antMatchers("/index.html", "/home.html", "/login.html", "/").permitAll()
.anyRequest().authenticated()
.and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
}
csrfトークンのセキュリティを無効にしましたか? –
はい私は春のセキュリティを設定している間にそれをしました – Atul
@Atul:これの意味を知っていますか:()。sessionManagement()。sessionCreationPolicy(SessionCreationPolicy.STATELESS); –