- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我在我的应用程序(spring 应用程序)中使用 CAS 进行单点登录。我能够使用 CAS 登录,我仅获得用户名,但无法从 CAS 获得电子邮件或任何其他属性。
对于 CAS 端的身份验证,我使用 LDAP 并在部署器ConfigContext.xml 中进行配置,下面是代码
在authenticationManager中添加以下代码
<property name="credentialsToPrincipalResolvers">
<list>
<bean class="org.jasig.cas.authentication.principal.CredentialsToLDAPAttributePrincipalResolver">
<property name="credentialsToPrincipalResolver">
<bean
class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" />
</property>
<property name="filter" value="sAMAccountName=%u" />
<property name="principalAttributeName" value="sAMAccountName" />
<property name="searchBase" value="DC=test,DC=com" />
<property name="contextSource" ref="LDAPcontextSource" />
<property name="attributeRepository">
<ref bean="attributeRepository" />
</property>
</bean>
</list>
</property>
并使用了 LdapPersonAttributeDao
<bean id="attributeRepository"
class="org.jasig.services.persondir.support.ldap.LdapPersonAttributeDao">
<property name="baseDN" value="cn=test,ou=test,dc=test,dc=com" />
<property name="contextSource" ref="LDAPcontextSource" />
<property name="requireAllQueryAttributes" value="true" />
<property name="queryAttributeMapping">
<map>
<entry key="username" value="sAMAccountName" />
</map>
</property>
<property name="resultAttributeMapping">
<map>
<entry key="displayName" value="cn" />
<entry key="mail" value="email" />
</map>
</property>
</bean>
我看了一些帖子,发现在下面的配置中添加 allowedAttributes 属性就是配置
<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
<property name="registeredServices">
<list>
<bean class="org.jasig.cas.services.RegisteredServiceImpl">
<property name="id" value="0" />
<property name="name" value="HTTP" />
<property name="description" value="Only Allows HTTP Urls" />
<property name="serviceId" value="http://**" />
<property name="allowedAttributes">
<list>
<value>cn</value>
<value>mail</value>
</list>
</property>
</bean>
在我的应用程序方面,我编写了类来获取用户名和电子邮件,下面是代码
public class RestAuthenticationUserDetailsService implements AuthenticationUserDetailsService<CasAssertionAuthenticationToken> {
@Override
public UserDetails loadUserDetails(CasAssertionAuthenticationToken token)
throws UsernameNotFoundException {
Object principal = token.getPrincipal();
String username = token.getName();
LOGGER.info(username);
Collection<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
return new User(username, "", authorities);
}
}
我获取了用户名,但没有获取其他属性,例如电子邮件。当我调试时,我看到主要属性是空的。
有人可以帮助我了解如何获取我的应用程序的属性吗提前致谢。
最佳答案
我在deployerConfigContext.xml的配置中看到。1. 中,key为LDAP条目属性,value为Principal的(值)2. 在 中,您应该允许Principal 中的值(例如displayName 和mail)
希望对你有帮助,加油!
关于java - 来自 CAS 的 LDAP 用户属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30725850/
我是 SSO 新手,我希望安装 Jasig CAS 演示 Web 应用程序并能够在其中登录。纯粹的研究和测试。我已经使用 https://wiki.jasig.org/display/CASUM/Se
我还没有找到任何人使用 Python 来通过 CAS 的例子。希望 Kenneth Reitz 可以向我展示“请求”如何让这一切变得简单...... 基本上,我无法通过 CAS 登录...从不验证我的
我正在尝试为一个开源项目编写一个 CAS ( https://en.wikipedia.org/wiki/Central_Authentication_Service) 客户端(使用 phpCAS),
我在本地计算机上建立了一个独立的 CAS 5 实例,用于修补/黑客攻击,并尝试将其设置为独立的 WAR 文件,并通过简单的基于文件的身份验证部署到 Tomcat。 从 WAR Overlay 模板 (
请解释一下 Shibboleth 和 CAS 之间的区别是什么? 最佳答案 第一个 (Shibboleth) 是服务器,第二个 (CAS) 是协议(protocol)。比较Central Authen
CAS(中央身份验证服务)和 Keycloak(身份和访问管理)之间有什么区别? 最佳答案 CAS 不支持 OAuth2,但 Keycloak 支持。这是一个很大的区别。 关于cas - CAS 和
我已使用 Spring 配置 CAS 以进行 SSO。然后我注意到,对于每个请求,CAS 客户端即使在第一次登录后也会联系 CAS 服务器。这正常吗? 这些是服务器操作: 身份验证期间: ACTION
遵循官方 Apereo CAS 文档。我无法理解(经过各种研究和指导)。 如何恢复认证后刚刚登录的用户。项目之间的身份验证和 SSO 正常工作。但是我无法获取有关已登录用户的信息。 这是我在 Appl
我正在将 CAS 与 JDBC 身份验证处理程序一起使用,并且想知道是否有可能在成功身份验证后获取主体对象的其他属性(例如名字、姓氏)而不仅仅是来自 CAS 的用户名? 最佳答案 在 casServi
我们正在开发一个邮件系统,其邮件客户端是Roundcube,使用Zimbra 作为邮件服务器。我的任务是将它们与 CAS 服务器集成,使它们能够单点登录。经过几天的研究,我觉得这是不可能的。 那么如何
我们正在尝试将 CAS 服务器用于我们现有的基于 Web 的应用程序的 SSO。我们的目标是 跨各种应用(包括跨域)实现单点登录。 在重定向到 CAS 服务器登录页面时,为不同的应用程序定制登录(在
我正在尝试使用 CAS 作为我的组织的 SSO 解决方案。使用此解决方案的应用程序之一是 GWT 应用程序,使用 GWTP 作为其 MVP 平台。 当尝试导航到我的应用程序中的某个内部位置时,例如:
在用户和 CAS 之间有一个负载均衡器。负载均衡器将检查是否允许 SSL 证书。但是从负载均衡器到 CAS 的连接将是 HTTP。 如何配置 cas 使其监听 HTTP? 我已经在我的 cas.pro
我在 CAS 中遇到单点注销问题。我使用的是 CAS 服务器 4.2.3 和 Spring 3.2。我的客户端应用程序是在 Spring Security 上配置的。遵循以下文档:http://doc
我正在考虑为 Django 网站设置单点登录。我的搜索将我带到了 django-mama-cas 和 django-cas-ng 但我不确定我是否可以或应该单独或一起使用它们。 django-cas-
我们使用 CAS 5.0 版和 LDAP 身份验证以及 DUO 多重身份验证。 Cas服务器工作正常。然后我们开始将 CAS SSO 集成到我们的应用程序中,此时我们在 java CAS 客户端中遇到
在过去的 3 天里,我一直在尝试从 4.X 服务器更改为 CAS 5.1.x 服务器,并进行了各种搜索和研究,但几乎没有任何进展。每当我删除对 cas-server-webapp-tomcat 的依赖
LDAP 与 MYSQL..JA-SIG CAS 使用 LDAP 与 CAS 使用 MySQL。 现在我们在 LDAP 中有用户 ID、密码和角色,并且正在与 CAS 和 Spring Secuirt
找不到类错误:org.apereo.cas.services.ServiceRegistry]:工厂方法“jsonServiceRegistry” 抛出异常;嵌套异常是 java.lang.NoCla
已经使用过OpenDJ和OpenAM的人们的经验是什么?旧版本似乎可以免费使用,但新版本似乎不是免费使用。它们与现有的商业产品相比如何?与将OpenLDAP与CAS一起使用相比,它们看起来是更好的选择
我是一名优秀的程序员,十分优秀!