我有一个cas服务器,它可以正确地认证并发送一些属性。现在我想添加一个服务来检查主体属性中的用户角色,并且只有当登录用户具有特定角色(如管理员角色!)时才允许访问服务。允许在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(什么也没有实现又一个简单的FPGA实现
问题是我不能让cas来检查supporterAuthenticationHandler
所以我可以走得更远(可能会陷入另一个需要具有属性的新主体的洞)。
我完全错了吗?我应该在我的管理员应用程序中检查用户角色吗?是否有可能通过不同的服务检查角色?
我我想知道我用CAS作为授权。好。这是一个授权,但我想为整个服务做,而不仅仅是它的一部分。我已经在某处读过它,但无法再找到它。 CAS必须能够以某种方式授权访问特殊服务。 (现在我检查服务端的服务授权) – alizelzele
根据你的问题,它是授权。身份验证只能确认用户不在安全系统中扮演什么角色。你将不得不建立一个完整的授权系统来做你想做的事情。当已经有系统进行授权和认证时,为什么要经历这些麻烦。 –