Cas Server-二次开发(重写源码)
参考:http://blog.csdn.net/yanjunlu/article/details/45498509
环境
Jdk:jdk1.8.0_112
Maven:apache-maven-3.3.9
开发工具:ideaIU-2017.1 (破解地址:http://idea.lanyus.com/ )
Jdk及其maven配置较为简单这里就不详述了,如果不会可自行百度;
二、重写源码
1.cas server 4.1以后的版本,客户端必须使用https协议,如何配置支持http协议:
cas.war\WEB-INF\classes\services\HTTPSandIMAPS-10000001.json
"serviceId" : "^(https|imaps|http)://.*",
"name" : "HTTPS and IMAPS and HTTP",
2. 修改配置文件deployerConfigContext.xml。(可选)
CAS Server默认登陆验证方式是SimpleTestUsernamePasswordAuthenticationHandler,也就是用户名和密码一致都可以登陆;但我们通常需要从数据库中取出用户名和密码进行验证,所以我们需要修改deployerConfigContext.xml,配置我们自己的服务认证方式:
(1) 在deployerConfigContext.xml添加数据源dataSource和密码加密器passwordEncoder配置。
<!-- 数据库连接信息 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<property name="url"><value>jdbc:mysql://192.168.0.210:3306/cas_demo</value></property>
<property name="username"><value>root</value></property>
<property name="password"><value>root123</value></property>
</bean>
<!-- 密码加密器,为自定义的密码加密类,实现接口 -->
<bean id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg index="0"><value>MD5</value></constructor-arg>
</bean>
(2) 注释掉SimpleTestUsernamePasswordAuthenticationHand