1

我正在为我的 Web 应用程序使用 SpringMVC、SpringSecurity、Spring、Mybatis。有很多并行的子系统(比如说,不同的注册系统),我想要实现的是给每个管理员(有很多在我控制下的管理员)对某些子系统的授权。比如有admin A、B、C,还有子系统X、Y、Z,我打算把admin A授权给子系统A、B,把admin B授权给子系统C,像这样。我如何使用spring security实现这种效果,有没有关于这个问题的文章,或者我用谷歌搜索的一些术语。非常感谢!!

4

1 回答 1

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>
于 2013-02-04T10:27:17.010 回答