CAS单点登录数据库配置操作学习记录笔记
来源:互联网 发布:自然辩证法与人工智能 编辑:程序博客网 时间:2024/06/01 10:26
最近一直在折腾cas这个开源项目的应用,虽然在大神眼里,它有很多缺陷,但是对于很多人来说,还是一个能个使用的项目,毕竟自己构造轮子需要的水平太高。
做的过程中参考了很多大神的帖子,现在总结写篇文章,总结一下CAS配置过程中需要注意的地方和值得参考的地方,以便巩固知识,帮助他人。
所需要的环境软件
1.JDK(jdk1.7.0_79) 2.Tomcat(apache-tomcat-7.0.67-windows-x64) 3.CAS-Server(cas-server-3.4.11-release) 4.CAS-Client(cas-client-3.2.1-release)
JDK与Tomcat的下载网址就不说了,
cas-server可以到这个网址下载:http://developer.jasig.org/cas/
cas-client可以到这个网址下载:http://developer.jasig.org/cas-clients/
好了,下面开始配置流程吧。
一、cas-server和cas-client的本机应用配置
主要的参考文章有这两位大神的:
1、http://www.micmiu.com/enterprise-app/sso/sso-cas-sample/
2、http://my.oschina.net/huangyong/blog/198109?fromerr=a6GUlk1H
这两篇文章都写的很好,第一篇文章更清晰一些,包括配置hosts文件,修改端口的命名方法很清晰,重点参考。
但是第一个教程里面有个错误就是在客户端导入命令那里,导入的源路径和目的路径写反了,修改一下就可以了,下面我把具体的命令贴出来:
//1、生成证书keytool -genkey -alias ssodemo -keyalg RSA -keysize 1024 -keypass michaelpwd -validity 365 -keystore d:\sso\ssodemo.keystore -storepass michaelpwd//2、导出证书keytool -export -alias ssodemo -keystore d:\sso\ssodemo.keystore -file d:\sso\ssodemo.crt -storepass michaelpwd//3、客户端导入证书keytool -importcert -alias ssodemo -file d:\sso\ssodemo.crt -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -noprompt
然后就是修改tomcat等配置文件的工作了。这里还设计到一个同一机器开启多个tomcat进行测试的问题,可以参考之前的一篇文章,很详细,
地址如下:http://blog.csdn.net/tangxiaolang101/article/details/50401317
按照两位大神的帖子和上面提到的注意事项,应该能够很快的配置成功,可能比较麻烦的就是cas-client引用以后,对web.xml文件添加过滤器会出问题,这里注意的就是修改web.xml文件记得重启一下tomcat,否则有时候会出bug。
二、将cas-server工程配置到eclipse中
这个配置方法有多种,网上大多数倒是用的maven来配置,不过这个东西要是网不好,或者eclipse版本不太对,容易出问题,我是折腾了很久也没有跑通。然后,就找了一种简便的配置方法,
参考地址如是:http://www.docin.com/p-1043355849.html
运用这个配置方法配置完成后,记得访问项目的地址是:http://localhost:8080/testCas
在端口后面要加上项目名称,要不是找不到的。
三、为cas配置数据库,从数据库中读取用户名和密码进行认证登陆
这个应该是绝大多数使用cas的小伙伴们都要配置应用的,可以参考大神的操作,
参考网址是:http://www.micmiu.com/enterprise-app/sso/cas-server-auth-db/
里面介绍了具体的操作流程,
1. 创建数据库;
2. 修改服务器端的webapps/cas/WEB_INF/deployerConfigContext.xml 文件;
3. 添加相关的jar包。
数据库的创建三段的结尾我分享了一个网盘文件,里面有sql文件,用了创建这个数据库。
deployerConfigContext.xml 文件也在网盘分享文件中。
相关的两个jar包入下图:
第一个cas-server-3.4.11\modules这个目录下可以找到;
第二个到网上搜一个就可以了。
下载下来都添加到工程的WEB-INF/lib目录下面去。
配置文件我做了一份网盘的,分享在这里:https://yunpan.cn/cuWFTIsXWZGar 访问密码 e014
四、登陆日志应用inspektr进行数据库存储
Auditing and Statistics Via Inspektr是由Marvin Addison创建的,可以如来存储一下这些信息:
Audit trail record BEGIN=============================================================WHO: [username: admin]WHAT: TGT-1-bG4eZcSgsaFR0tTXPOvmheYfmcLsGgaUL3zeiFTJQIQ2U7tvHn-casACTION: TICKET_GRANTING_TICKET_CREATEDAPPLICATION: CASWHEN: Tue Jan 05 14:12:02 CST 2016CLIENT IP ADDRESS: 127.0.0.1SERVER IP ADDRESS: 127.0.0.1=============================================================
cas-server-3.4.11-release这个版本,相应的jar是已经有了的。如下图:
主要来修改WEB-INF.spring-configuration.auditTrailContext.xml和deployerConfigContext.xml这两个文件。其中deployerConfigContext.xml文件在第三步中已经进行了设置,就不用再搞了,直接用就可以了。auditTrailContext.xml这个配置文件在第三步的分享中也是有的,可以直接用。数据库就是第三步中分享里的那个sql文件生成的数据库。还是贴一下具体步骤吧,
1、创建数据库
因为第三步中的sql文件已经创建了这步所需要的com_audit_trail和com_statistics两张表,所以就不需要操作了;
2、修改deployerConfigContext.xml文件。
这个文件也是接着用第三步的就可以了。
3、修改auditTrailContext.xml文件,文件源码如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <description> Configuration file for the Inspektr package which handles auditing for Java applications. If enabled this should be modified to log audit and statistics information the same way your local applications do. The default is currently to log to the console which is good for debugging/testing purposes. </description> <aop:aspectj-autoproxy/> <bean id="auditTrailManagementAspect" class="com.github.inspektr.audit.AuditTrailManagementAspect"> <!-- String applicationCode --> <constructor-arg index="0" value="CAS" /> <!-- PrincipalResolver auditablePrincipalResolver --> <constructor-arg index="1" ref="auditablePrincipalResolver" /> <!-- List<AuditTrailManager> auditTrailManagers --> <constructor-arg index="2"> <list> <!-- <bean class="com.github.inspektr.audit.support.ConsoleAuditTrailManager" />--> <!-- Uncomment following for writing logs to database via JDBC. See below for definition of auditManager bean. --> <!--存入数据库操作 --> <ref local="auditManager" /> </list> </constructor-arg> <!-- Map<String,AuditActionResolver> auditActionResolverMap --> <constructor-arg index="3"> <map> <entry key="AUTHENTICATION_RESOLVER"> <ref local="authenticationActionResolver" /> </entry> <entry key="CREATE_TICKET_GRANTING_TICKET_RESOLVER"> <ref local="ticketCreationActionResolver" /> </entry> <entry key="DESTROY_TICKET_GRANTING_TICKET_RESOLVER"> <bean class="com.github.inspektr.audit.spi.support.DefaultAuditActionResolver" /> </entry> <entry key="GRANT_SERVICE_TICKET_RESOLVER"> <ref local="ticketCreationActionResolver" /> </entry> <entry key="GRANT_PROXY_GRANTING_TICKET_RESOLVER"> <ref local="ticketCreationActionResolver" /> </entry> <entry key="VALIDATE_SERVICE_TICKET_RESOLVER"> <ref local="ticketValidationActionResolver" /> </entry> <entry key="DELETE_SERVICE_ACTION_RESOLVER"> <ref local="deleteServiceActionResolver" /> </entry> <entry key="SAVE_SERVICE_ACTION_RESOLVER"> <ref local="saveServiceActionResolver" /> </entry> </map> </constructor-arg> <!-- Map<String,AuditResourceResolver> auditResourceResolverMap --> <constructor-arg index="4"> <map> <entry key="AUTHENTICATION_RESOURCE_RESOLVER"> <bean class="org.jasig.cas.audit.spi.CredentialsAsFirstParameterResourceResolver" /> </entry> <entry key="CREATE_TICKET_GRANTING_TICKET_RESOURCE_RESOLVER"> <ref local="returnValueResourceResolver" /> </entry> <entry key="DESTROY_TICKET_GRANTING_TICKET_RESOURCE_RESOLVER"> <ref local="ticketResourceResolver" /> </entry> <entry key="GRANT_SERVICE_TICKET_RESOURCE_RESOLVER"> <bean class="org.jasig.cas.audit.spi.ServiceResourceResolver" /> </entry> <entry key="GRANT_PROXY_GRANTING_TICKET_RESOURCE_RESOLVER"> <ref local="returnValueResourceResolver" /> </entry> <entry key="VALIDATE_SERVICE_TICKET_RESOURCE_RESOLVER"> <ref local="ticketResourceResolver" /> </entry> <entry key="DELETE_SERVICE_ACTION_RESOLVER"> <ref local="returnValueResourceResolver" /> </entry> <entry key="SAVE_SERVICE_RESOURCE_RESOLVER"> <ref local="returnValueResourceResolver" /> </entry> <entry key="DELETE_SERVICE_RESOURCE_RESOLVER"> <ref local="deleteServiceResourceResolver" /> </entry> <entry key="SAVE_SERVICE_RESOURCE_RESOLVER"> <ref local="saveServiceResourceResolver" /> </entry> </map> </constructor-arg> </bean> <bean id="saveServiceResourceResolver" class="com.github.inspektr.audit.spi.support.ParametersAsStringResourceResolver" /> <bean id="deleteServiceResourceResolver" class="org.jasig.cas.audit.spi.ServiceManagementResourceResolver" /> <bean id="saveServiceActionResolver" class="com.github.inspektr.audit.spi.support.DefaultAuditActionResolver"> <constructor-arg index="0" value="_SUCCEEDED" /> <constructor-arg index="1" value="_FAILED" /> </bean> <bean id="deleteServiceActionResolver" class="com.github.inspektr.audit.spi.support.ObjectCreationAuditActionResolver"> <constructor-arg index="0" value="_SUCCEEDED" /> <constructor-arg index="1" value="_FAILED" /> </bean> <bean id="auditablePrincipalResolver" class="org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver"> <constructor-arg index="0" ref="ticketRegistry" /> </bean> <bean id="authenticationActionResolver" class="com.github.inspektr.audit.spi.support.DefaultAuditActionResolver"> <!-- String successSuffix --> <constructor-arg index="0" value="_SUCCESS" /> <!-- String failureSuffix --> <constructor-arg index="1" value="_FAILED" /> </bean> <bean id="ticketCreationActionResolver" class="com.github.inspektr.audit.spi.support.DefaultAuditActionResolver"> <!-- String successSuffix --> <constructor-arg index="0" value="_CREATED" /> <!-- String failureSuffix --> <constructor-arg index="1" value="_NOT_CREATED" /> </bean> <bean id="ticketValidationActionResolver" class="com.github.inspektr.audit.spi.support.DefaultAuditActionResolver"> <!-- String successSuffix --> <constructor-arg index="0" value="D" /> <!-- String failureSuffix --> <constructor-arg index="1" value="_FAILED" /> </bean> <bean id="returnValueResourceResolver" class="com.github.inspektr.audit.spi.support.ReturnValueAsStringResourceResolver" /> <bean id="ticketResourceResolver" class="org.jasig.cas.audit.spi.TicketAsFirstParameterResourceResolver" /> <!--writing logs to database via jdbc --> <bean id="inspektrTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="dataSource" /> <bean id="inspektrTransactionTemplate" class="org.springframework.transaction.support.TransactionTemplate" p:transactionManager-ref="inspektrTransactionManager" p:isolationLevelName="ISOLATION_READ_COMMITTED" p:propagationBehaviorName="PROPAGATION_REQUIRED" /> <bean id="auditManager" class="com.github.inspektr.audit.support.JdbcAuditTrailManager"> <constructor-arg index="0" ref="inspektrTransactionTemplate"/> <property name="dataSource" ref="dataSource"/> </bean></beans>
里面用中文给出了修改的地方,已经修改的作用,这样第四步也完成了。
暂时就这四步,接下来应该还会有第五步/第六步。。。。慢慢更新!!!
- CAS单点登录数据库配置操作学习记录笔记
- CAS单点登录配置笔记
- cas单点登录学习笔记 .
- CAS单点登录学习笔记
- Cas单点登录学习笔记
- CAS单点登录-配置数据库认证方式
- cas单点登录采用sqlserver数据库配置
- jasig cas单点登录配置笔记
- 单点登录学习(3)CAS客户端配置
- 学习笔记_java CAS单点登录(SSO)
- 单点登录cas jasig学习笔记
- CAS单点登录配置
- CAS单点登录配置
- CAS单点登录配置
- CAS 单点登录学习
- <学习笔记>cas server + cas client 单点登录 原理介绍
- <学习笔记>cas server + cas client 单点登录 原理介绍
- cas 单点登录配置速成
- iOS网络编程实践-蓝牙对等网络通信实例讲解
- 配置Nginx反向代理Tomcat
- QUESTION 169 A database has three online redo log groups with one member each. A redo log member wit
- Windows 无法安装到这个磁盘。选中的磁盘具有MBR分区表。在 EFI 系统上,Windows 只能安装到 GPT 磁盘。
- 如何把EXE文件做成windows服务
- CAS单点登录数据库配置操作学习记录笔记
- 优先级反转与死锁
- GCD使用详解
- MSSQL 用SQL语句操作数据
- 手把手入门神经网络系列(2)_74行代码实现手写数字识别
- PDO防注入原理分析以及使用PDO的注意事项
- setjmp和longjmp的使用
- 大文件之Java RandomAccessFile用法
- Android ActionBar 讲解