0
私は春mvcと春のセキュリティプロジェクトに取り組んでいます。私たちのプロジェクトでは、役割と権限はdbに格納され、そこにはさまざまな役割があります。私は以下のコードを書いてアクセスを制限していますが、すべてのURLがそのすべてに役立っています。許可された権限に基づいてユーザーを制限するのを助けてください。春のセキュリティの動的役割
のsecurity.xml上記の例では
<http use-expressions="true" >
<intercept-url pattern="/**" access="isAuthenticated()"/>
<form-login login-page="/login.jsp"
login-processing-url="/login"
username-parameter="userName"
password-parameter="password"
authentication-success-handler-ref="authenticationSuccessHandler"
authentication-failure-handler-ref="authenticationFailedHandler"
/>
<logout logout-url="/logout" invalidate-session="true" logout-success-url="/login.jsp?logout=true"/>
<access-denied-handler error-page="/accessDenied"/>
</http>
カスタム認証プロバイダ
List<GrantedAuthority> AUTHORITIES = new ArrayList<GrantedAuthority>();
if(userName.equals("admin")){
System.out.println("++++++ admin user +++++");
AUTHORITIES.add(new SimpleGrantedAuthority("/hello"));
AUTHORITIES.add(new SimpleGrantedAuthority("/hello1"));
AUTHORITIES.add(new SimpleGrantedAuthority("/hello2"));
}else{
AUTHORITIES.add(new SimpleGrantedAuthority("/hello"));
AUTHORITIES.add(new SimpleGrantedAuthority("/hello1"));
}
return new UsernamePasswordAuthenticationToken(userName,null,AUTHORITIES);
は今、すべてのユーザーは、そのURLのみのアクセスするために、すべてのURLにアクセスしますが、plsはそれらを制限するために助けることができます彼に与えられた。
春のセキュリティhttp://docs.spring.io/spring-security/site/docs/4.0.3.RELEASE/reference/htmlsingle/#jc-httpsecurityのドキュメントをお読みください。 – akuma8
'SimpleGrantedAuthority'はURLではなく役割を担う必要があります。これを解決しようとする。私もここで見てみることをお勧めします:http://www.baeldung.com/security-spring – akuma8