基于CAS 单点登录服务端的搭建

一、cas服务端的搭建

1、工具包下载
cas服务端:cas-server-3.3.3-release.zip 下载地址: http://downloads.jasig.org/cas/cas-server-3.3.3-release.zip
cas客户端:cas-client-3.1.8-release.zip 下载地址: http://downloads.jasig.org/cas-clients/cas-client-3.1.8-release.zip
cas java客户端:cas-client-2.0.11.zip 下载地址: http://downloads.jasig.org/cas-clients/cas-client-2.0.11.zip

2.、基本搭建。
将cas服务端zip压缩包解压,在 modules文件夹下找到 cas-server-webapp-3.3.3.war 放到一个tomcat下,启动tomcat,将自动解压缩war包,将项目文件夹名改为cas。
去掉https验证(先暂时去掉)
打开 cas/WEB-INF/deployerConfigContext.xml,
找到<bean class="org.jasig.cas.authentication.handler.support.
HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" />,
将其更改为: <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient"p:requireSecure="false" />
打开cas/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml,将p:cookieSecure="true"改为p:cookieSecure="false"。
打开cas/WEB-INF/spring-configuration/warnCookieGenerator.xml,将p:cookieSecure="true"改为p:cookieSecure="false"。
访问该项目可以看到如下内容。 

使用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页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值