CAS客户端和服务端部署

首先下载cas的服务端和客户端包

http://developer.jasig.org/cas/(服务端)
http://developer.jasig.org/cas-clients/(客户端)

然后在配置完jdk等环境的情况下,我们需要两个tomcat来充当cas的服务端和客户端
解压tomcat的解压到两次,并命名不同的名称。

然后需要在环境变量中配置“CATALINA_HOME”变量,变量值为第一个tomcat的包的路径:
这里写图片描述

然后在第二个tomcat目录下修改几个文件:
1. conf/server.xml中需要将的端口修改成任意端口
2. 将访问端口8080换成非占用端口
3. 替换成任意非占用端口
然后对bin/startup.bat进行修改:
这里写图片描述

在头一行写上红框内语句,CATALINA_HOME=当前第二个tomcat的地址
同理修改shutdown.bat和catalina.bat,这样配置使两个tomcat不会互相冲突。

配置完tomcat后,在进行cas服务端的配置
首先解压服务端压缩包,将modules中的cas-server-webapp.war解压到第二个tomcat的webapps中,并对配置文件进行修改:

CAS-SERVER服务端的部署
取消HTTPS协议:
打开 cas-server\WEB-INF\deployerConfigContext.xml 文件 ,找到如下配置:

 <beanid="proxyAuthenticationHandler"
class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
         p:httpClient-ref="httpClient"/>
增加参数p:requireSecure="false",是否需要安全验证,即HTTPS,false为不采用。修改后为: 
  <beanid="proxyAuthenticationHandler"
class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
         p:httpClient-ref="httpClient"p:requireSecure="false" />
打开 cas-server\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml ,找到如下配置: 
<beanid="ticketGrantingTicketCookieGenerator"class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
       p:cookieSecure="true"
       p:cookieMaxAge="-1"
       p:cookieName="CASTGC"
       p:cookiePath="/cas"/> 
修改 p:cookieSecure="true" 为p:cookieSecure="false",即不开启https验证 
打开 cas-server\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" 为p:cookieSecure="false",即不开启https验证

然后启动tomcat(用startup.bat启动即可)
输入网址:别名就是你放在webapps中的文件名
这里写图片描述

注意:cas-server4.0之前的默认验证规则:只要用户名和密码相同就认证通过,4.0之后规则改了,默认是配置在deployerConfigContext.xml配置文件中,可以看到用户名密码为casuser/Mellon。

<display-name>casclient</display-name> 

  <!-- 用于单点退出,该监听器用于实现单点登出功能,通知其他应用单点登出 --> 
  <listener> 
    <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> 
  </listener> 

  <!-- 该过滤器用于实现单点登出功能 --> 
  <filter> 
    <filter-name>CAS Single Sign Out Filter</filter-name> 
    <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> 
  </filter> 
  <filter-mapping> 
    <filter-name>CAS Single Sign Out Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
  </filter-mapping> 

  <!-- 该过滤器负责用户的认证工作 --> 
  <filter> 
    <filter-name>CASFilter</filter-name> 
    <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> 
    <init-param> 
        <param-name>casServerLoginUrl</param-name> 
                <!-- 设置登录的URL地址 --> 

<!-- 设置cas跳转的路径和端口,即cas服务端地址 -->         <param-value>http://localhost:8090/cas-server/login</param-value> 
    </init-param> 
    <init-param> 
        <param-name>serverName</param-name> 
                <!-- 设置本应用的访问地址及端口 --> 
        <param-value>http://localhost:8080</param-value> 
    </init-param> 
  </filter> 
  <filter-mapping> 
    <filter-name>CASFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
  </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>http://localhost:8090/cas-server</param-value> 
    </init-param> 
    <init-param> 
        <param-name>serverName</param-name> 
        <param-value>http://localhost:8080</param-value> 
    </init-param> 
  </filter> 
  <filter-mapping> 
    <filter-name>CAS Validation Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
  </filter-mapping> 

  <!-- 该过滤器负责实现HttpServletRequest请求的包裹,允许开发者通过HttpServletRequest的getRemoteUser()获取SSO登录的用户 --> 
  <filter> 
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> 
    <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> 
  </filter> 
  <filter-mapping> 
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
  </filter-mapping> 

   <!-- 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。比如AssertionHolder.getAssertion().getPrincipal().getName()。 --> 
  <filter> 
    <filter-name>CAS Assertion Thread Local Filter</filter-name> 
    <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class> 
  </filter> 
  <filter-mapping> 
    <filter-name>CAS Assertion Thread Local Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
  </filter-mapping> 

启动demo项目,就会自动跳转到cas服务端认证啦,注意,启动时很有可能demo会出现jar包冲突,如果发生冲突,需要demo项目所在tomcat的conf/context.xml加入如下信息:
即若jar冲突优先使用项目中的jar包。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值