我嘗試讓角色層次結構在我的應用程序中工作。我唯一想要的是所有級別的定義層次結構:在url級別,現在也在視圖級別(在我的jsp文件中)。如何在jsp中獲得spring安全角色層次結構?
我用下面的設置:
<beans:bean id="accessDecisionManager" class="org.springframework.security.access.vote.AffirmativeBased">
<beans:property name="decisionVoters">
<beans:list>
<beans:ref bean="roleHierarchyVoter"/>
<beans:bean class="org.springframework.security.web.access.expression.WebExpressionVoter">
<beans:property name="expressionHandler">
<beans:bean class="org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler">
<beans:property name="roleHierarchy" ref="roleHierarchy"/>
</beans:bean>
</beans:property>
</beans:bean>
<beans:bean class="org.springframework.security.access.vote.AuthenticatedVoter"/>
</beans:list>
</beans:property>
</beans:bean>
<beans:bean id="roleHierarchyVoter" class="org.springframework.security.access.vote.RoleHierarchyVoter">
<beans:constructor-arg ref="roleHierarchy"/>
</beans:bean>
<beans:bean id="roleHierarchy" class="org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl">
<beans:property name="hierarchy">
<beans:value>
ROLE_ADMIN > ROLE_OWNER
ROLE_OWNER > ROLE_DISTRIBUTOR
ROLE_DISTRIBUTOR > ROLE_RESELLER
ROLE_RESELLER > ROLE_USER
</beans:value>
</beans:property>
</beans:bean>
<http auto-config="true" use-expressions="true" access-decision-manager-ref="accessDecisionManager">
...
</http>
對於URL級別(攔截的URL),它的工作原理非常好,但在我的JSP文件,沒有工作。問題是我沒有正確理解配置以使角色層次結構起作用。
<security:authorize access="hasRole('ROLE_ADMIN')">
<div class="span4">
<h2>Admin</h2>
</div><!--/span-->
</security:authorize>
<security:authorize access="hasRole('ROLE_OWNER')">
<div class="span4">
<h2>Owner</h2>
</div><!--/span-->
</security:authorize>
<security:authorize access="hasRole('ROLE_DISTRIBUTOR')">
<div class="span4">
<h2>Distributor</h2>
</div><!--/span-->
</security:authorize>
我用這個簡單的例子在視圖級別測試角色層次結構,但它不起作用。只有具有管理員角色的用戶才能看到他的區塊,但不能看到其他區塊。
有一個想法我做錯了我的配置。
你有這個問題的答案?我面臨同樣的問題... – ZheFrench 2013-10-16 09:00:04
回答這裏的春季4,百里香和註釋配置: [鏈接](https://stackoverflow.com/a/45419894/1784136) – arctica 2017-07-31 15:33:51