CAS单点登录(二)---非SSL协议 CAS服务端部署及客户端配置

1.下载CAS server与CAS client

下载地址:

http://downloads.jasig.org/cas/cas-server-4.0.0-release.zip

http://downloads.jasig.org/cas-clients/cas-client-3.2.1-release.zip


2.部署CAS server

a.将下载的cas-server-4.0.0-release.zip解压,把cas-server-4.0.0/modules/cas-server-webapp-4.0.0.war拷贝到 tomcat的webapps目录,并更名为cas.war。
b.修改cas\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml文件,将属性p:cookieSecure="true" 变成 p:cookieSecure="false"(这个设置主要是让CAS不走SSL协议)
c.启动tomcat,然后访问:http://localhost:8888/cas,如果能出现如下图所示的CAS登录页面,则说明CAS Server 已经部署成功。

CAS单点登录(二)---非SSL协议 CAS服务端部署及客户端配置_第1张图片


3.配置客户端

这里的例子是从零配置客户端,如果是将已有项目改造为client,也是类似操作。

a.首先新建一个web project,项目名为cas_client

b.将cas-client-3.2.1/modules/cas-client-core-3.2.1.jar拷贝到项目的lib目录下

c.将下面的内容新增到web.xml文件中

   
      
      
        org.jasig.cas.client.session.SingleSignOutHttpSessionListener  
      
      
      
      
        CAS Single Sign Out Filter  
        org.jasig.cas.client.session.SingleSignOutFilter  
      
  
      
        CAS Single Sign Out Filter  
        /*  
      
  
      
      
        CASFilter  
        org.jasig.cas.client.authentication.AuthenticationFilter  
          
            casServerLoginUrl  
            http://localhost:8080/cas/login  
          
          
              
            serverName  
            http://localhost:8080  
          
      
  
      
        CASFilter  
        /*  
      
      
      
      
        CAS Validation Filter  
        org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter  
          
            casServerUrlPrefix  
            http://localhost:8080/cas  
          
          
            serverName  
            http://localhost:8080  
          
      
      
        CAS Validation Filter  
        /*  
      
      
      
      
        CAS HttpServletRequest Wrapper Filter  
        org.jasig.cas.client.util.HttpServletRequestWrapperFilter  
      
      
        CAS HttpServletRequest Wrapper Filter  
        /*  
      
      
      
      
        CAS Assertion Thread Local Filter  
        org.jasig.cas.client.util.AssertionThreadLocalFilter  
      
      
        CAS Assertion Thread Local Filter  
        /*  
      
      

d.将index.jsp按如下修改,通过AttributePrincipal获取用户名(默认情况下,登陆成功后CAS server只会讲用户名传给客户端)

<%@ page language="java" import="java.util.*,org.jasig.cas.client.authentication.AttributePrincipal" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal(); 
String username = principal.getName();
%>



  
    
  
  
  
   welcome <%=username %> 

e.启动tomcat,如果报异常,可能是缺少commons-logging-xx.jar ,将对应的jar包添加到lib下,xx代表版本号,我的为1.1.1

f.正常运行后,浏览器输入localhost:8080/cas_client,如果页面重定向到上面的cas登陆页面,则表示客户端配置成功,且地址栏里的地址为:


正如上一篇文章所说,service后指向的路径为登陆成功后页面的跳转地址

g.用户名密码分别输入:casuser与Mellon。

在CAS server中,用户名密码默认是写死的,在webapps\cas\WEB-INF下的deployerConfigContext.xml中进行了设置。

h.登录成功后,页面会跳转到index.jsp页面,并显示用户名。

i.此时再访问localhost:8080/cas 会出现如下页面:

CAS单点登录(二)---非SSL协议 CAS服务端部署及客户端配置_第2张图片

----------------------------------------------------------------------------------------------------

这样就实现了简单的服务端部署与客户端配置,后续还需要进行服务端登录页的改造,将固定的用户名密码改为从数据库查询等操作。

你可能感兴趣的:(CAS单点登录(二)---非SSL协议 CAS服务端部署及客户端配置)