CAS SSO 代码及依赖的jar下载: http://download.csdn.net/detail/nmsbq/9875610
1.导入项目 cas-server-webapp源码导入到idea或eclipse,pom.xml 加入依赖的jar
<!-- https://mvnrepository.com/artifact/org.jasig.cas/cas-server-support-jdbc -->
<dependency>
<groupId>org.jasig.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>3.5.1</version>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.22</version>
</dependency>
2.CAS服务器深入配置
上面的初体验仅仅是简单的身份验证,实际应用中肯定是要读取数据库的数据,进一步配置CAS服务器怎么读取数据库的信息进行身份验证。 首先打开deployerConfigContext.xml
配置的地方如下:
找到:SimpleTestUsernamePasswordAuthenticationHandler这个验证Handler,这个是比较简单的,只是判断用户名和密码相同即可通过,这个肯定不能在实际应用中使用,弃用注释掉!
<bean
class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
注释掉后在下面添加下面的代码:
<!-- 变更为JDBC验证方式 -->
<bean id="primaryAuthenticationHandler" class="cn.com.yktour.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"></property>
<property name="sql" value="SELECT login_pwd,id,login_name,nick_name from user where login_name = ?"></property>
<property name="passwordEncoder" ref="MD5PasswordEncoder"></property>
</bean>
新的验证实现类 cn.com.yktour.jdbc.QueryDatabaseAuthenticationHandler
根据用户查询用户的SQL SELECT login_pwd,id,login_name,nick_name from table where login_name = ?
注意 你的密码加密方式如果不是简单的MD5 加密,需要重新实现加密方式
在最外层的</bean> 后面添加 数据源配置和MD5加密配置
<!-- 数据源配置 --> <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://数据库连接地址:3306/db?characterEncoding=utf8</value></property> <property name="username"><value>账号</value></property> <property name="password"><value>密码</value></property> </bean>