如何利用tomcat和cas实现单点登录(2):配置cas数据库验证和cas客户端配置

时间:2023-03-09 03:28:12
如何利用tomcat和cas实现单点登录(2):配置cas数据库验证和cas客户端配置

接(1),上一篇主要讲述了tomcat和cas server端的部署。

接下来主要还有两个步骤。

注意:为了开启两个tomcat,要把直接配置的tomcat的环境变量取消!!!!!!!!!!

客户端配置mysql数据库登录

首先,在mysql中新建一个名字为test的数据库,新建表名user,添加两列:username和password。

插入一个数据:insert into user(username,password) values(’test’,’test’);

Cas server 4.0.0版本

将cas.war放到tomcat的webapps目录下之后,解压出来cas目录之后,打开其中的WEB-INF目录下的deployerConfigContext.xml文件。

找到如下的地方:

如何利用tomcat和cas实现单点登录(2):配置cas数据库验证和cas客户端配置

这里是原先的cas登录方法,即以casuer/Mellon为帐号/密码登录。修改成如下:

如何利用tomcat和cas实现单点登录(2):配置cas数据库验证和cas客户端配置

这里是添加数据源。

并在下面添加:

<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://localhost:3306/test</value>

</property>

<property name="username">

<value>root</value>

</property>

<property name="password">

<value>123456</value>

</property>

</bean>

现在,我们打开打开cas登录界面,就能以test/test为帐号密码登录了。

配置cas客户端

重新解压一个tomcat,命名为tomcat-app。

下载cas-client-3.3.2,解压之后,把modules目录下的cas-client-core-3.3.2.jar复制到tomcat-app下的webapps/examples/WEB-INF里的lib目录下。

修改conf目录下的server.xml文件

如何利用tomcat和cas实现单点登录(2):配置cas数据库验证和cas客户端配置

主要修改运行端口,防止端口冲突。修改之后的内容如下:

如何利用tomcat和cas实现单点登录(2):配置cas数据库验证和cas客户端配置

如何利用tomcat和cas实现单点登录(2):配置cas数据库验证和cas客户端配置

以tomcat自带的examples为例。

首先,打开webapps/examples目录下的WEB-INF目录,打开其中的web.xml文件,添加下面的内容:

<!-- ======================== 单点登录开始 ======================== -->

<filter>

<filter-name>CAS Filter</filter-name>

<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>

<init-param>

<param-name>casServerLoginUrl</param-name>

<param-value>https://lyt.cas.com:8443/cas/login</param-value>

</init-param>

<init-param>

<param-name>serverName</param-name>

<param-value>http://lyt.app.com:18080</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>CAS Filter</filter-name>

<url-pattern>/*</url-pattern> //这里表示访问examples目录下的所有内容时都需要cas认证,也可以改为<url-pattern>/servlets/servlet/HelloWorldExample</url-pattern>,这样的话只有访问helloworld这个例子的时候才会需要cas认证

</filter-mapping>

<!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->

<filter>

<filter-name>CAS Validation Filter</filter-name>

<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>

<init-param>

<param-name>casServerUrlPrefix</param-name>

<param-value>https://lyt.cas.com:8443/cas</param-value>

</init-param>

<init-param>

<param-name>serverName</param-name>

<param-value>http://lyt.app.com:18080</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>CAS Validation Filter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- ======================== 单点登录结束 ======================== -->

接下来,我们测试一下。

同时运行两个tomcat,在浏览器中输入:lyt.app.com:18080/examples/servlets/servlet/HelloWorldExample

发现自动跳转到cas登录页面。

如何利用tomcat和cas实现单点登录(2):配置cas数据库验证和cas客户端配置

输入帐号密码test/test之后,登录成功。跳转到目标页面。

如何利用tomcat和cas实现单点登录(2):配置cas数据库验证和cas客户端配置

至此cas单点登录初步配置成功。