CAS客户端和服务端部署

来源:互联网 发布:淘宝的宝贝卖点怎么写 编辑:程序博客网 时间:2024/06/05 00:39

首先下载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包。

原创粉丝点击