只是简单的验证csa服务器登录和读取数据库账号密码登录
环境window2008+tomcat7+jdk7+cas-server-4.0.0-release
1. 首先到 http://downloads.jasig.org/ 地址下载 cas-server-4.0.0-release.zip,解压后到modules目录中找到cas-server-webapp-4.0.0.war,复制到tomcat的webapp目录下,修改名称为cas.war
2. 创建证书
keytool -genkey -alias ssotest -keyalg RSA -keysize 2048 -keystore C:/cas/keys/ssotest.keystore
导出证书
keytool -export -file c:/cas/keys/ssotest.crt -alias ssotest -keystore C:/cas/keys/ssotest.keystore
客户端JVM导入证书
keytool -import -keystore C:\Users\Administrator\Desktop\jdk764\jre\lib\security\cacerts -file c:/cas/keys/ssotest.crt -alias ssotest
如果提示:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
那么输入密码:changeit
这是因为JDK安装后会默认创建一个密钥库,密码为:changeit
也可以删除d:\Java\jdk1.7.0_60\jre\lib\security\cacerts 在输入上述命令
3. 让tomcat使用证书
打开tomcat目录的conf/server.xml文件,8443端处,并设置keystoreFile、keystorePass修改结果如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="c:/cas/keys/ssotest.keystore" keystorePass="123456" />
启动tomcat测试是否可用,https://localhost:8443 能进入到tomcat目录表示https配置成功。
4. 登录cas
启动tomcat之后再webapp中的cas.war自动解压,我们可以直接访问https://localhost:8443/cas/login, cas4.0 默认账号密码是casuser/Mellon 如下图
5. 读取数据库进行认证
需要的jar包有cas-server-support-jdbc.jar c3p0-0.9.1.2.jar mysql-connector-java-5.1.24 ,我这里是mysq 其他数据库根据情况整理jar包,放入到webapps\cas\WEB-INF\lib 。之后在cas\WEB-INF下找到deployerConfigContext.xml进行修改
首先注释掉默认的登录账号密码
<bean id="primaryAuthenticationHandler" class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler"> <property name="users"> <map> <entry key="casuser" value="Mellon"/> </map> </property> </bean>
注释之后,添加jdbc配置,这里为了方便没有采用加密
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" p:driverClass="com.mysql.jdbc.Driver" p:jdbcUrl="jdbc:mysql://ip:3306/dts?useUnicode=true& characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" p:user=user p:password=password /> <bean id="dbAuthHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> <property name="sql" value="select password from user_info where name=?" /> <property name="dataSource" ref="dataSource" /> </bean>
再找到id=authenticationManager的bean
<bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager"> <constructor-arg> <map> <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" /> <!-- <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />--> <entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver"/> </map> </constructor-arg> <property name="authenticationPolicy"> <bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy" /> </property> </bean>
是为了注释掉key-ref="primaryAuthenticationHandler"的部分,然后引入id=dbAuthHandler的bean
之后重启tomcat 进行验证
在此列出一些比较好的相关博文以供参考:
• http://blog.csdn.net/frinder/article/details/7969925
• http://sgq0085.iteye.com/blog/2003190
• http://sgq0085.iteye.com/blog/2099196
• http://www.iteye.com/blogs/tag/cas
相关推荐
予org.jasig.cas.client.util.CommonUtils 加入 public static void disableSSLVerification(){ try { // Create a trust manager that does not validate certificate chains TrustManager[] ...
jasig开源单点登录框架的时序图
基于JASIG+CAS统一认证平台的设计和实现
-- 该过滤器使得开发者可以通过 org.jasig.cas.client.util.AssertionHolder 来获取用户 的登录名。 比如 AssertionHolder.getAssertion().getPrincipal().getName()。 --> <filter-name>CAS Assertion ...
jasig-cas-4.0.x-覆盖模板
cas-client-core-3.2.1.jar LoginImpl.java LoginServlet.java SSOClientFilter.java web.xml 电子政务平台单点登录集成手册v4.0-2017年2月9日.docx
jasig cas 单点登录环境搭建详细资料
jasig cas4.1.4+oracle数据库认证,可以直接部署到 tomcat中去。自己建表user_info。
原版cas单点登录源码和wa包,原版sso,官网下载太慢,所以特地放到csdn
cas客户端集成单点登录代码cas客户端集成单点登录代码cas客户端集成单点登录代码cas客户端集成单点登录代码cas客户端集成单点登录代码cas客户端集成单点登录代码
修改-jasig-cas
jasig cas 单点登录 SSO 官网下载很慢,这里上传一下
server 地址: http://www.jasig.org/cas/download client 地址: http://www.ja-sig.org/downloads/cas-clients/ 当前最新版本 cas-server-3.4.2 , cas-client-3.1.10 2. 安装 server l 解压 cas-server-...
对应我本人上传的cas server开发的版本。 <!-- CAS logout--> <bean id="logout" class="org.apache.shiro.web.filter.authc.LogoutFilter"> ...分别是cas 服务的地址,自己应用的地址,和注销登录的地址。
#DockerFile用于具有cas-management的JASIG CAS Jasig Cas 4.1映像 ##先决条件 码头工人 JVM和Maven(战争大楼) 码头工人组成 ssl证书 ## image build mvn clean package; docker-compose rm -f; docker-compose ...
cas单点登录系统,带源码,可定制开发;CASServer负责完成对用户的认证工作,CASServer需要独立部署,CASServer处理用户名/密码等凭证(Credentials)验证,它可能会到数据库检索一条用户帐号信息,也可能在XML文件中...
Jasig CAS REST 客户端 Jasig CAS(中央身份验证服务)的一个非常基本的 REST 客户端; #要求 #部署 npm install Download source from remote repositories #使用组件 设置支持 REST 的 Jasig CAS 实例后(有关...
Jasig Cas 仅使用 https 协议工作,上面的证书用于验证我们正在针对正确的服务器进行身份验证。 转到 sso-poc/client1 并键入 mvn spring-boot:run -Dspring.profiles.active=liquibase 这将初
东北大学信息化建设——基于JASIG CAS的统一身份认证系统 概述 •统一认证与单点登录 •CAS •东北大学统一认证服务
Maven坐标:org.jasig.cas.client:cas-client-core:3.2.1; 标签:jasig、client、cas、core、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...