一、cas服务端的搭建
使用admin和admin登录即可。登录后可以看到如下界面。
通过上述操作服务端搭建完了。但是我们在真正的项目中肯定是要登录到数据库中去验证用户名和密码的。
4、使用数据库来验证用户登录
下面就介绍下如何使cas查询数据库中的用户名和密码。(PS:这里有个限定,那就是需要所有的web应用都使用同一个库和密码加密方式。 例如MD5。当然,在项目中也理所应当这么做。)
首先需要导入一些jar包。
导入相关jar包。截图如下:
打开cas服务端:cas/WEB-INF/ deployerConfigContext.xml,大约100多行找到如下代码:
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
注释掉这行代码,添加如下代码
<bean class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler" abstract="false" lazy-init="default" autowire="default" dependency-check="default">
<property name="dataSource" ref="casDataSource" /> <!--数据源-->
<property name="tableUsers" value="TB_USER" /> <!--表-->
<property name="fieldUser" value="UserName"/> <!--用户名-->
<property name="fieldPassword" value="Password"/> <!--密码-->
<property name="passwordEncoder" ref="passwordEncoder"/><!--加密方式-->
</bean>
这里我使用的是让cas指定需要验证的表和字段,另外指定了加密方式,可以看到我们还需要两个bean属性,数据源和加密方式。
在外层加入bean:
<bean id="casDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url" value="jdbc:sqlserver://192.168.1.14:1433;DatabaseName=NFS_IOT_DESKTOP"></property>
<property name="username" value="sa" />
<property name="password" value="123" />
</bean>
<!--加密方式,也可以指定自己的加密类-->
<bean id="passwordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder" autowire="byName">
<constructor-arg value="MD5"/><!--使用MD5加密-->
</bean>
之后重启tomcat,可以验证自己是否成功。
这样cas服务端的数据层就完全配置完毕了。当然我们还需要自定义验证登录的界面,这里就说下如何指定前台登录的jsp就可以了。
在服务端的classes文件夹下,有很多配置文件,其中 default_views.properties就是指定页面用的。可以根据其中的注释指定自己的jsp页面。