私のアプリケーションで春のセキュリティを使用しています。ユーザーが/ privatePages/*にアクセスしたい場合は、認証のためのログイン画面が表示されます。これは正常に動作します。この式はTrueを与えるように私は、認証が実行されるようになりました見ることができます春のセキュリティ自動認証が機能しない
Authentication authentication = new UsernamePasswordAuthenticationToken("SAMPLE", "SAMPLE", getAuthority());
//authentication.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(authentication);
public Collection<GrantedAuthority> getAuthority() {
Collection<GrantedAuthority> grantedAuthorities = new ArrayList<GrantedAuthority>();
GrantedAuthority grantedAuthority = new GrantedAuthority() {
public String getAuthority() {
return "ROLE_RequiredRole";
}
};
grantedAuthorities.add(grantedAuthority);
return grantedAuthorities;
}
:私のコントローラで私はこのような何かをしたので、私はゲストアクセスとして何かをしたい私はしかし
SecurityContextHolder.getContext().getAuthentication().isAuthenticated()
/privatePages/somePage.jsp
にアクセスできません。それでも私はログインページにリダイレクトされます。何か不足していますか?
UPDATE
<http pattern="/privatePages/**" auto-config="true" use-expressions="true" authentication-manager-ref="myManager" create-session="never">
<session-management invalid-session-url="/privatePages/login" />
<intercept-url pattern="/privatePages" access="hasRole('RequiredRole')"/>
<intercept-url pattern="/privatePages/" access="hasRole('RequiredRole')"/>
<form-login
login-page="/privatePages/login" . . . .
セキュリティ設定で '/ privatePages/*'に 'http.authorizeRequests()。antMatchers("/privatePages/* ")のようなアクセス権があれば、hasAnyRole("あれは何でもいい); '/ privatePages/...'という接頭辞のすべてのURLにルールを適用する代わりに、認証が必要なルールを設定した後で '/ privatePages/somePage.jsp'を' anonymous() 'スコープにする必要があります。 – px06
資格情報なしでログインしたい –