搭建cas单点登陆服务端(cas4.1.10+tomcat8.5.31)
一、准备
1、下载cas,版本4.1.10(习惯使用maven,不习惯gradle),地址:https://github.com/apereo/cas/archive/v4.1.10.zip
2、下载tomcat,版本8.5.31
二、配置cas
1、导入idea
解压cas,导入到idea,主要是编译操作cas-server-webapp
2、配置端口
打开cas-server-webapp\src\main\webapp\WEB-INF\cas.properties文件,修改第20行(端口需要跟tomcat的端口一致)
server.name=http://localhost:8080
3、配置数据库
主要是操作cas-server-webapp\src\main\webapp\WEB-INF\deployerConfigContext.xml文件
3.1、默认验证方式
默认情况下,cas是不连接数据库的,而是将用户名、密码存到map里,如下图所示
3.2、开启数据库验证
注释掉原有的验证方式,增加数据库连接配置和数据库验证配置
<!--数据库配置,此处使用sqlserver--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /> <property name="url" value="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test_db" /> <property name="username" value="sa" /> <property name="password" value="db123456" /> </bean> <!--通过查询数据库sys_user表的方式进行验证--> <bean id="primaryAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler" p:dataSource-ref="dataSource" p:passwordEncoder-ref="MD5PasswordEncoder" p:sql="select password from sys_user where username=?" /> <!--数据库使用md5的方式进行加密--> <bean id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"> <constructor-arg index="0"> <value>MD5</value> </constructor-arg> </bean>
认证方式和加密方式可以自行进行修改,此处使用是系统默认的QueryDatabaseAuthenticationHandler、DefaultPasswordEncoder
3.3、增加数据库连接的依赖
在pom.xml增加sqlserver的依赖
<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version> </dependency>
4、取消https(默认Tomcat不支持https)
4.1
修改deployerConfigContext.xml文件第91行增加p:requireSecure="false",从而设置不采用 安全验证,即不采用 HTTPS
<bean id="proxyAuthenticationHandler" class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="supportsTrustStoreSslSocketFactoryHttpClient" p:requireSecure="false"/>
4.2
修改cas-server-webapp\src\main\webapp\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml文件第36行,修改p:cookieSecure="false"
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator" c:casCookieValueManager-ref="cookieValueManager" p:cookieSecure="false" p:cookieMaxAge="-1" p:cookieName="TGC" p:cookiePath=""/>
4.3
修改cas-server-webapp\src\main\webapp\WEB-INF\spring-configuration\warnCookieGenerator.xml,修改p:cookieSecure="false"
<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator" p:cookieHttpOnly="true" p:cookieSecure="false" p:cookieMaxAge="-1" p:cookieName="CASPRIVACY" p:cookiePath="" />
5、自定义登陆页面
主要是修改cas-server-webapp\src\main\webapp\WEB-INF\view\jsp\default\ui\casLoginView.jsp,这里不做详细介绍
6、maven编译
编译cas-server-webapp,生成war包(此处编译成cas.war)
三、配置tomcat
将打包好的cas服务端war包,拷贝到tomcat的webapps下,启动tomcat
四、运行页面截图
本人修改了登陆页面。