修改cas的WEB-INF/cas.properties
server.name=http://192.168.25.XXX:XXX
CAS默认使用的是HTTPS协议,如果使用HTTPS协议需要SSL安全证书(需向特定的机构申请和购买) 。如果对安全要求不高或是在开发测试阶段,可使用HTTP协议。我们这里讲解通过修改配置,让CAS使用HTTP协议。
2.1、修改cas的WEB-INF/deployerConfigContext.xml
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" p:requireSecure="false"/> //requireSecure属性意思为是否需要安全验证,即HTTPS,false为不采用
2.2、修改cas的/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator" p:cookieSecure="false" //同理为HTTPS验证相关,TRUE为采用HTTPS验证,FALSE为不采用https验证。 p:cookieMaxAge="3600" //是COOKIE的最大生命周期,-1为无生命周期 //3600为在3600秒内,打开任意窗口,都不需要验证。 p:cookieName="CASTGC" p:cookiePath="/cas" />
2.3、修改cas的WEB-INF/spring-configuration/warnCookieGenerator.xml
<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator" p:cookieSecure="false" //同上 p:cookieMaxAge="3600" //同上 p:cookieName="CASPRIVACY" p:cookiePath="/cas" />
3.1、修改cas服务端中web-inf下deployerConfigContext.xml ,添加如下配置
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" p:driverClass="com.mysql.jdbc.Driver" p:jdbcUrl="jdbc:mysql://127.0.0.1:3306/jdcharacterEncoding=utf8" p:user="root" p:password="root" /> <bean id="passwordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder" c:encodingAlgorithm="MD5" //密码加密方式 p:characterEncoding="UTF-8" /> <bean id="dbAuthHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler" p:dataSource-ref="dataSource" p:sql="select password from tb_user where username = ?" //验证sql p:passwordEncoder-ref="passwordEncoder"/>
3.2、然后在配置文件开始部分找到如下配置
<bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager"> <constructor-arg> <map> <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" /> <entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver" /> //使用数据源的校验 </map> </constructor-arg> <property name="authenticationPolicy"> <bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy" /> </property> </bean>
4.1、将登陆页login.html拷贝到cas系统下WEB-INF\view\jsp\default\ui 目录下
4.2、将相应的css js等文件夹拷贝到 cas目录下
4.3、将原来的casLoginView.jsp 改名(可以为之后的修改操作做参照),将login.html改名为casLoginView.jsp
4.4、编辑casLoginView.jsp 内容
//在修改后的文件顶部添加以下指令 <%@ page pageEncoding="UTF-8" %> <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
//修改form标签,保留自己的css样式 <form:form method="post" id="fm1" commandName="${commandName}" htmlEscape="true" class="sui-form"> ...... </form:form>
//修改用户名框 <form:input id="username" tabindex="1" accesskey="${userNameAccessKey}" path="username" autocomplete="off" htmlEscape="true" placeholder="邮箱/用户名/手机号" class="span2 input-xfat" />
//修改密码框 <form:password id="password" tabindex="2" path="password" accesskey="${passwordAccessKey}" htmlEscape="true" autocomplete="off" placeholder="请输入密码" class="span2 input-xfat" />
//修改登陆按钮 <input type="hidden" name="lt" value="${loginTicket}" /> <input type="hidden" name="execution" value="${flowExecutionKey}" /> <input type="hidden" name="_eventId" value="submit" /> <input class="sui-btn btn-block btn-xlarge btn-danger" accesskey="l" value="登陆" type="submit" />
4.5、在表单内加入错误提示框
<form:errors path="*" id="msg" cssClass="errors" element="div" htmlEscape="false" /> //默认提示信息为英文
设置国际化为zn_CN ,修改WEB-INF/cas-servlet.xml中的en(61行)将i18n国际化修改为中文
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" p:defaultLocale="zh_CN" />
在WEB-INF/classes/messages_zh_CN.properties中添加提示信息
authenticationFailure.AccountNotFoundException=\u7528\u6237\u4E0D\u5B58\u5728. //用户名不存在时的错误提示
authenticationFailure.FailedLoginException=\u5BC6\u7801\u9519\u8BEF. //密码错误的提示
4.6、设置登出后自动跳转
修改cas系统的配置文件cas-servlet.xml(217行)
<bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction" p:servicesManager-ref="servicesManager" p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"/>
此时就可以实现登出后跳转,如:跳转到百度
<a href="http://localhost:9100/cas/logout?service=http://www.baidu.com">退出登录</a>
原文:https://www.cnblogs.com/709539062rao/p/12934081.html