我正在使用SpringMVC,SpringSecurity,Spring,Mybatis作为我的Web应用程序。有很多并行子系统(比如说,不同的注册系统),我想要实现的是给每个管理员(有很多管理员在我的控制之下)授权给某些子系统。 例如,有管理员A,B,C,以及子系统X,Y,Z,我打算授权管理员A到子系统A,B,以授权管理员B到子系统C,就像这样。我怎么能使用spring security来实现这个效果,是否有关于这个问题的任何文章,或者我的谷歌一些术语。非常感谢!!
答案 0 :(得分:1)
您可以为每个子系统设置不同的基本URL:
www.appdomain.com/subsitemA/page1.html
www.appdomain.com/subsitemA/page2.html
www.appdomain.com/subsitemB/*
www.appdomain.com/subsitemC/*
....
www.appdomain.com/subsitemX/*
然后使用 intercept-url 模式很容易保护它们:
<sec:http auto-config='true' use-expressions="true" >
<!-- Specific patterns comes first -->
<sec:intercept-url pattern="/subsitemA/**" access="hasRole('ROLE_ADM_A')" />
<sec:intercept-url pattern="/subsitemB/**" access="hasRole('ROLE_ADM_A') and hasRole('ROLE_ADM_B')" />
<sec:intercept-url pattern="/subsitemC/**" access="hasRole('ROLE_ADM_C') and hasRole('ROLE_ADM_D')" />
...
<!-- General pattern comes last -->
<sec:intercept-url pattern="/**" access="isFullyAuthenticated()" />
</sec:http>