【发布时间】:2015-07-17 22:25:38
【问题描述】:
我有一个 cas 服务器,它可以正确地验证并发送回一些属性。现在我想添加一个服务来检查主体属性中的用户角色,并仅在登录用户具有特定角色(如管理员角色!)时才允许访问服务。
我阅读了“requiredHandlers”并认为它可以提供帮助,但我无法让它发挥作用!
对于服务,我有这样的东西:
<bean class="org.jasig.cas.services.RegexRegisteredService">
<property name="id" value="1"/>
<property name="name" value="Admin panel service"/>
<property name="serviceId" value="http://localhost:8080/admin"/>
<property name="evaluationOrder" value="0"/>
<property name="ignoreAttributes" value="true"/>
<property name="requiredHandlers" value="supporterAuthenticationHandler"> <!-- this is what i found so far -->
</property>
</bean>
supporterAuthenticationHandler 在 authenticationManager 中定义
<bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager">
<constructor-arg>
<map>
<entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver"/>
<entry key-ref="primaryAuthenticationHandler"><null /></entry>
<entry key-ref="supporterAuthenticationHandler"><null /></entry>
</map>
</constructor-arg>
<property name="authenticationPolicy">
<bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy"/>
</property>
</bean>
而supporterAuthenticationHandler 是 AuthenticationHandler 的一个简单实现(还没有实现。
问题是我不能让 cas 检查supporterAuthenticationHandler,这样我就可以走得更远(并且可能掉进另一个洞,我需要带有属性的新校长)。
我是不是完全走错了路?我应该在我的管理应用程序中检查用户角色吗?甚至可以使用具有不同服务的 cas 检查角色吗?
【问题讨论】:
标签: authentication cas