cas server4.2以下sso单点登录去掉https验证

4.2以下cas server去掉https验证

如果大家懒的去改,我这里有已经改好了的,花点分数下载即可:cas-server-webapp-4.0.0去掉https验证.war

建议大家还是自己手动去改下,这样可以增加印象,好了,废话不多说我们正式

开始

先下载cas server,这是官网的地址 https://www.apereo.org/projects/cas/download-cas

如果嫌太慢可以下载我上传的https://download.csdn.net/download/qq_27184497/10560409

解压出来后取出modules文件夹下的 cas-server-webapp-4.0.0.war,放到tomcat的webapps目录下

cas默认是采用https模式的,我们没有配置证书,所以要么配置证书,要么取消https的过滤,让http协议也能访问。

我们这里取消https的配置,让http也能访问。

需要修改三个地方的配置(针对4.0.0版本,其他版本的话第一处必改,其他的看看还有没有带有cookie的文件名)

修改一deployerConfigContext.xml增加参数p:requireSecure="false"

我们在tomcat的webapp中找到 cas/WEB-INF/deployerConfigContext.xml

里面有一句

<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient"/>

这里需要增加参数p:requireSecure="false",requireSecure属性意思为是否需要安全验证,即HTTPS,false为不采用。修改后为:

  <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
 p:httpClient-ref="httpClient" 
p:requireSecure="false"/>

修改二ticketGrantingTicketCookieGenerator.xml修改p:cookieSecure="false"

 我们在tomcat的webapp中找到cas/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml

<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

      p:cookieSecure="true"

      p:cookieMaxAge="-1"

      p:cookieName="CASTGC"

      p:cookiePath="/cas" />

 参数p:cookieSecure="true",同理为HTTPS验证相关,TRUE为采用HTTPS验证,FALSE为不采用https验证。

参数p:cookieMaxAge="-1",简单说是COOKIE的最大生命周期,-1为无生命周期,即只在当前打开的IE窗口有效,IE关闭或重新打开其它窗口,仍会要求验证。可以根据需要修改为大于0的数字,比如3600等,意思是在3600秒内,打开任意IE窗口,都不需要验证。

 这里把 cookieSecure修改为false就行了

修改三 warnCookieGenerator.xml修改p:cookieSecure="false"

我们在tomcat的webapp中找到cas/WEB-INF/spring-configuration/warnCookieGenerator.xml

里面有

<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="true"
p:cookieMaxAge="-1"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas" />

 参数p:cookieSecure="true",同理为HTTPS验证相关,TRUE为采用HTTPS验证,FALSE为不采用https验证

 这里把 cookieSecure修改为false就行了。

三个地方都修改好后我们就可以启动tomcat了,这时候https的方式已经取消,可以使用http的方式访问了。

去掉登录页面上的提示

我们去掉https验证之后 保证了我们在cas server和cas client 使用http访问也能进行正常交互。

但是原生的cas server页面上的提示是不会根据设置自动消失的。只能我们手动去除。

如果需要去除的话吗,步骤如下:

配置完http方式访问之后页面上的 提示还是存在的,如果我们之后会对登录界面样式完全改版,所以可以不用管它。如果还是需要把它去掉的话,cas统一认证的登陆页面位于:cas目录/WEB-INF/view/jsp/default 文件夹里,其中ui/casLoginView.jsp为登陆页面。我们找到这段代码删掉即可。

<c:if test="${not pageContext.request.secure}">
  <div id="msg" class="errors">
    <h2>Non-secure Connection</h2>
    <p>You are currently accessing CAS over a non-secure connection.  Single Sign On WILL NOT WORK.  In order to have single sign on work, you MUST log in over HTTPS.</p>
  </div>
</c:if>

原版文章地址https://blog.csdn.net/zzq900503/article/details/54910609

猜你喜欢

转载自blog.csdn.net/qq_27184497/article/details/81180627