cas.principal.resolver.persondir.return.null=false
我添加了这个依赖项:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
这是我的ServicesRegistry.conf
:
{
"services":[
{
"id":1,
"serviceId":"https://localhost:8743/**",
"name":"HELLO_WORLD",
"description":"WEBAPP FOR TESTS",
"theme":"my_example_webapp",
"allowedToProxy":true,
"enabled":true,
"ssoEnabled":true,
"anonymousAccess":false,
"evaluationOrder":1,
"attributeReleasePolicy" : {
"@class" : "org.jasig.cas.services.ReturnAllowedAttributeReleasePolicy",
"principalAttributesRepository" : {
"@class" : "org.jasig.cas.authentication.principal.DefaultPrincipalAttributesRepository"
},
"allowedAttributes" : [ "java.util.ArrayList", [ "cn", "description", "telephoneNumber" ] ]
}
},
{
"id":2,
"serviceId":"https://yahoo.com",
"name":"YAHOO",
"description":"Test service with exact match on its serviceId and optional extra attributes",
"extraAttributes":{
"someCustomAttribute":"Custom attribute value"
},
"evaluationOrder":2
}
]
}
我的LDAPAuthenticationHandler
如下所示:
<bean id="ldapAuthenticationHandler"
class="org.jasig.cas.authentication.LdapAuthenticationHandler"
p:principalIdAttribute="cn"
c:authenticator-ref="authenticator">
<property name="principalAttributeMap">
<map>
<entry key="cn" value="cn" />
<entry key="description" value="description" />
<entry key="telephoneNumber" value="telephoneNumber" />
</map>
</property>
</bean>
<util:map id="authenticationHandlersResolvers">
<entry key-ref="ldapAuthenticationHandler" value="#{null}" />
</util:map>
<bean id="attributeRepository" class="org.jasig.services.persondir.support.NamedStubPersonAttributeDao"
p:backingMap-ref="attrRepoBackingMap" />
<util:map id="attrRepoBackingMap">
<entry key="cn" value="cn" />
<entry key="description" value="description" />
<entry key="telephoneNumber" value="telephoneNumber" />
<entry>
<key><value>memberOf</value></key>
<list>
<value>faculty</value>
<value>staff</value>
<value>org</value>
</list>
</entry>
</util:map>
AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
final Map attributes = principal.getAttributes();
Iterator attributeNames = attributes.keySet().iterator();
String attributeName = (String) attributeNames.next();
我在另一个线程中读到,我必须将CAS20ProxyReceivingTicketValidationFilter
更改为CAS30ProxyReceivingTicketValidationFilter
,但这并没有改变任何东西:
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://localhost:8943/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>https://localhost:8743</param-value>
</init-param>
<init-param>
<param-name>redirectAfterValidation</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>useSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
我的问题是servicesregistry.conf
。由于某种原因,它不起作用,我不知道为什么。
如果您在使用ServicesRegistry.conf
文件时遇到问题,建议您在DeployerConfigContext.xml
中使用该文件:
<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
<property name="registeredServices">
<list>
<bean class="org.jasig.cas.services.RegexRegisteredService"
p:id="5" p:name="https.all" p:description="Allow HTTPS connection"
p:serviceId="^https://.*" p:evaluationOrder="5" >
<property name="attributeReleasePolicy">
<bean class="org.jasig.cas.services.ReturnAllAttributeReleasePolicy" />
</property>
</bean>
</list>
</property>
</bean>
这将允许所有具有符合regex的URL的服务^https://.*
。
我和这里的其他几个问题有同样的问题,没有一个真正得到回答;也就是说,对于CAS4.x(4.2.6),我无法获得LDAP属性返回给客户机应用程序。 问题1这似乎是矫枉过正;自定义代码来解决什么是一个“简单”的问题。 问题2已经这样做了,但它不起作用。 更新#2 我做了更多的测试,但还是不成功。我认为,这归结于LdapAuthenticationHandler的principalAttributeMa
当我从DeployerConfigContext.xml中删除attributeRepository时,它的抛出异常。 根据本文档https://apereo.github.io/cas/4.2.x/installation/ldap-authentication.html,LdapAuthenticationHandler能够独立地解析和检索主体属性,而不需要额外的主体解析器机器。如果是,我们如
CAS 是 Central Authentication Service 的缩写 —— 中央认证服务,一种独立开放指令协议,是 Yale 大学发起的一个企业级开源项目,旨在为 Web 应用系统提供一种可靠的 SSO 解决方案。 CAS 支持以下特性: CAS v1, v2 和 v3 协议 SAML v1 和 v2 协议 OAuth v2 协议 OpenID & OpenID Connect 协议
shiro-cas 模块是用来保护一个 Jasig CAS 单点登录服务器。它使一个 Shiro-enabled 程序变成 CAS 客户端 CAS协议的基本理解 如果你想访问一个应用程序由 CAS 保护,并且如果你不验证在这个应用程序中的客户端,你重定向通过 CAS 客户端 到 CAS 服务器登录页面。 在 CAS 登录 url 定义了应用程序用户希望登录服务参数。 http://applicat
(要求Workerman版本>=3.3.0) bool GlobalDataClient::cas(string $key, mixed $old_value, mixed $new_value) 原子替换,用$new_value替换$old_value。 仅在当前客户端最后一次取值后,该key对应的值没有被其他客户端修改的情况下, 才能够将值写入。 参数 $key 键值。(例如$global-
有人能简单地告诉我这三个是什么吗?他们是替代品(竞争)吗?比较他们是对的吗? 有这么多宝石似乎都在说着非常相似的事情: https://github.com/rubycas/rubycas-server和https://github.com/rubycas/rubycas-client https://github.com/nbudin/devise_cas_authenticatable htt