[仿写]
http://www.ja-sig.org/downloads/cas/cas-server-3.1.1-release.zip
http://www.ja-sig.org/downloads/cas-clients/cas-client-java-2.1.1.zip
1
deployerConfigContext.xml
<!-- JDBC 执行SQL 通过数据库数据验证 --> <bean id="casDataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url"> <value>jdbc:jdbc:oracle:thin:@192.168.89.28:1521:orcl</value> </property> <property name="username"> <value>blog</value> </property> <property name="password"> <value>password</value> </property> </bean> <bean id="passwordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder" autowire="byName"> <constructor-arg value="MD5"/> </bean>
id="authenticationManager"
<property name="authenticationHandlers"> <list> <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" /> <!-- xwl 默认验证方法 <bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" /> --> <!-- xwl Query Database Validation--> <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> <property name="dataSource" ref="casDataSource" /> <property name="sql" value="select u.pwd from users u where lower(u.login) = lower(?)" /> <property name="passwordEncoder" ref="passwordEncoder" /> </bean> <!-- xwl 添加新的 SSOAuthenticationHandler --> <bean class="com.sso.SSOAuthenticationHandler"> </bean> </list> </property>
2
2.配置authenticationManager中credentialsToPrincipalResolvers属性
<bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver">
<property name="attributeRepository" ref="attributeRepository" /> </bean>
注意:默认cas登录服务器没有把用户信息传到客户端中,所以要修改WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp文件,增加
<!-- 把用户信息传到客户端中 --> <c:if test="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes) > 0}"> <cas:attributes> <c:forEach var="attr" items="${assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes}"> <cas:${fn:escapeXml(attr.key)}>${fn:escapeXml(attr.value)}</cas:${fn:escapeXml(attr.key)}> </c:forEach> </cas:attributes> </c:if>
3 ticketRegistry.xml
<!-- Ticket Registry save cache--> <bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.DefaultTicketRegistry" /> <!-- XWL ticket JPA Save DB <bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.JpaTicketRegistry"> <constructor-arg index="0" ref="entityManagerFactory" /> </bean> --> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="generateDdl" value="true"/> <property name="showSql" value="true" /> </bean> </property> <property name="jpaProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> <!-- <prop key="hibernate.hbm2ddl.auto">update</prop> --> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" p:entityManagerFactory-ref="entityManagerFactory" /> <tx:annotation-driven transaction-manager="transactionManager"/> <!-- XWL ticket org.apache.commons.dbcp.BasicDataSource.class --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" p:driverClassName="oracle.jdbc.driver.OracleDriver" p:url="jdbc:oracle:thin:@192.168.29.28:1521:orcl" p:password="blog" p:username="password" />
4 cas-servlet.xml 修改authenticationViaFormAction配置变成
<bean id="authenticationViaFormAction" class="org.jasig.cas.web.flow.AuthenticationViaFormAction" p:centralAuthenticationService-ref="centralAuthenticationService" p:formObjectClass="org.jasig.cas.authentication.principal.RememberMeUsernamePasswordCredentials" p:formObjectName="credentials" p:validator-ref="UsernamePasswordCredentialsValidator" p:warnCookieGenerator-ref="warnCookieGenerator" />
<!-- XWL Adition UsernamePasswordCredentialsValidator --> <!-- org.jasig.cas.authentication.principal.RememberMeUsernamePasswordCredentials com.sso.SSOAuthCredentials--> <bean id="UsernamePasswordCredentialsValidator" class="org.jasig.cas.validation.UsernamePasswordCredentialsValidator" />
5
- <bean id="UsernamePasswordCredentialsValidator" class="org.jasig.cas.validation.UsernamePasswordCredentialsValidator" />
修改ticketExpirationPolicies.xml,grantingTicketExpirationPolicy配置如下,注意时间要加大,不然session很容易过期,达不到remember me的效果。
<bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.RememberMeDelegatingExpirationPolicy"> <property name="sessionExpirationPolicy"> <bean class="org.jasig.cas.ticket.support.TimeoutExpirationPolicy"> <constructor-arg index="0" value="2592000000" /> </bean> </property> <property name="rememberMeExpirationPolicy"> <bean class="org.jasig.cas.ticket.support.TimeoutExpirationPolicy"> <constructor-arg index="0" value="2592000000" /> </bean> </property> </bean>
6
在网络安全性较好,对系统安全没有那么高的情况下可以取消https验证,使系统更加容易部署。
1.修改ticketGrantingTicketCookieGenerator.xml
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator" p:cookieSecure="false" p:cookieMaxAge="-1" p:cookieName="CASTGC" p:cookiePath="/cas" />
p:cookieSecure改成false,客户端web.xml中单独服务器的链接改成http
7
7
相关推荐
`.net-casSSO-client.rar`提供的程序集`DoNetCasClient.dll`是一个预编译的库,可以直接集成到你的.NET项目中,简化了客户端的开发工作。这个库通常包含以下功能: 1. **登录验证**:客户端库会处理向CAS服务器发送...
"Yale CAS SSO DotNet Client" 是一个专为.NET框架设计的客户端库,用于集成耶鲁大学(Yale)的中央认证服务(Central Authentication Service, CAS)。CAS是一种开源的身份验证协议,它允许用户通过单一登录...
"Yale CAS SSO JAVA Client" 是一个专为Java应用程序设计的身份验证服务,它利用了耶鲁大学开发的中央认证服务(Central Authentication Service, CAS)。CAS是一种开放源代码的单点登录(Single Sign-On, SSO)框架...
CAS(Central Authentication Service,中央认证服务)是Java社区开发的一个开源SSO解决方案,它为Web应用提供了统一的认证和授权服务。 CAS的核心概念包括以下几个部分: 1. **CAS服务器**:这是SSO的核心,负责...
CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源身份验证框架,旨在提供一种安全的单点登录(Single Sign-On,SSO)解决方案。SSO允许用户通过一次登录,就能访问多个相互信任的应用系统...
CAS(Central Authentication Service)是基于Java的开源身份验证框架,主要用于实现单一登录(Single Sign-On,简称SSO)。SSO允许用户在访问多个应用系统时只需登录一次,从而提高用户体验和安全性。在这个“cas ...
【CAS SSO学习心得】 CAS(Central Authentication Service)是一种广泛使用的单点登录(Single Sign-On,简称SSO)框架,主要由Java编写。在本文中,我们将深入探讨如何配置CAS服务器以及客户端,以便实现单点登录...
在这个场景中,我们关注的是如何在Linux环境中利用LDAP(Lightweight Directory Access Protocol)和CAS(Central Authentication Service)来实现SSO。 **LDAP SSO** LDAP是一个轻量级的目录访问协议,常用于存储...
### CAS SSO配置文档详解 #### 一、SSO实现原理与CAS的作用 单点登录(Single Sign-On,简称SSO)是一种用户身份验证机制,允许用户在一个安全领域内访问多个应用系统,而无需多次输入身份验证信息。在税务行业...
CAS(Central Authentication Service)是耶鲁大学开发的开源SSO解决方案,它提供了一个简单但强大的身份验证框架。CAS支持多种应用程序和服务之间的单一登录体验,减少了用户记住和管理多个账户的复杂性。 CAS的...
CAS(Central Authentication Service)是 Yale 大学开发的一个开源项目,它提供了一种实现SSO的标准化方式。CAS SSO 的核心思想是通过一个中心认证服务器来处理所有应用系统的身份验证,从而简化用户登录流程并提高...
基于Tomcat6的CAS SSO配置涉及的主要知识点包括SSO(Single Sign-On,单点登录)、CAS(Central Authentication Service,中心认证服务)、SSL(Secure Socket Layer,安全套接层)以及Tomcat服务器的配置。...
CAS(Central Authentication Service,中央认证服务)是单点登录(Single Sign-On,SSO)的一种实现,它允许用户在一个应用系统中登录后,无需再次认证即可访问其他已集成的系统。本配置文档主要涵盖了如何搭建CAS...
CAS(Central Authentication Service)SSO(Single Sign-On)是一种广泛使用的身份验证协议,它允许用户通过一次登录,就能访问多个相互信任的应用系统,无需多次输入凭证。本资源包含已搭建好的CAS SSO服务端和...
CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(SSO)框架,它允许用户通过一个统一的身份验证入口点访问多个应用系统,而无需在每个系统中单独登录。SSO(Single Sign-On)是现代...
其中,CAS(Central Authentication Service)是一个广泛应用的开放源码SSO协议,它允许用户通过单一的认证过程访问多个应用系统。 SSO的关键在于共享身份验证信息,使得用户只需一次登录操作即可在多个相互信任的...
SSO实例安装和配置指南PDF版 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。
CAS(Central Authentication Service)是由Yale大学发起的开源项目,它是实现SSO的一种常见解决方案,尤其在Java项目中广泛应用。据称,大约80%的开源Web SSO项目选择了CAS。CAS的设计理念是简单高效且安全,其核心...