CAS 单点登录:
cas也是一个服务,可部署在Tomcat下的war包
CAS服务端安装:
1、下载cas
2、找到war包,放到tomcat下,启动tomcat
3、http://localhost:8080/cas/login
4、默认用户名:casuser 密码:Mellon deployerConfigContext.xml文件中修改用户名密码,也可在添加一个
5、不要8080端口,可修改,修改tomcat的端口8080,server.xml 9100 ,修改cas工程web-inf下的cas.properties server.name的端口号
6、去除https认证:
(1)web-inf/deployerConfigContext.xml 找到bean HttpbasedService... 添加 P:requireSecure="false" 大概91行
(2)web-iNF/spring-configuration/ticketGrantingTicketGenerator.xml 最长的配置文件 P:cookieSecure="false"
(3)web-iNF/spring-configuration/warnCookieGenerator.xml P:cookieSecure="false"
CAS客户端 (原生方式)
pom.xml 添加cas客户端的核心包 org.jasig.cas.client
项目web.xml 中有单点登录/登出过滤器 需要配置CAS server 的URL
原理就是Filter过滤器
主要过滤器:认证过滤其/票证校验过滤器
**退出的跳转页面修改服务端:cas-server.xml logOUtAction --->服务重定向配置改为true
退出地址:cas/logout?service=url 需要跳转的页面
6、cas服务端数据源配置 web-inf/deployerConfigContext.xml
需要添加3个bean
(1)数据源
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@192.168.168.144:1521:hpora" />
<property name="username" value="muapp10g" />
<property name="password" value="ceshiku" />
</bean>
<!--配置验证类1-->
<bean id="dbResourceHandle" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"></property>
<property name="sql" value="select pw from sys_acct_auth where user_code =?"></property> 查询数据库的sql
<!--下面这个是我自定义的MD5加密类-->
<property name="passwordEncoder" ref="RS10Md5PasswordEncoder"></property> 如果用户密码没有加密则不使用
<!--下面这个是cas提供的MD5加密类,下面会有bean,你自己一睁眼就看到了,玩过spring的应该看一眼就吐了
<property name="passwordEncoder" ref="MD5PasswordEncoder" ></property>
-->
</bean>
<!--数据验证模式1 cas默认MD5加密类,返回值:加密后的字符串-->
<bean id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg index="0" value="MD5" />
</bean>
*找到原理的handle把key-ref换成dbResourceHandle
7、在添加jar包 池包,数据源包、cas-server-support-jdbc-4.0.0.jar 支持数据源的cas包
放到server服务的lib下
8、登录界面改造:web-inf/view/jsp/default/ui/casloginView.jsp
替换自己的页面 把原页面的指令copy到新页面
9、错误信息提示改中文:web-inf/classes/messages.properties 【i18n 国际化】
messages_zk_.CN_properties
10、修改cas-server.xml id="localeResolver" P:defaultLocale="zh_CN" CN必须大写 页面显示中文
11、spring Security 与 CAS 集成
org.springframework.security spring-security-cas