cas配置多个QueryDatabaseAuthenticationHandler和多个datasource

本文介绍了如何在CAS服务器环境中配置多个QueryDatabaseAuthenticationHandler和相应的数据源,以实现多数据库登录认证。内容包括CAS服务端和客户端的配置步骤,如引入相关jar包、修改配置文件以支持http访问、配置数据源、定义验证方式和属性详细信息,以及安全退出的设置。文章提供了详细的配置参考链接。
摘要由CSDN通过智能技术生成

一、环境说明

1)        Tomcat7.0.6

2)        Jdk7

3)        CAS Service版本 cas-server-4.0 (这个版本和原来版本有很大区别)

4)        CAS Client 版本 cas-client-core-3.3

 

二、 配置客户端

1.        项目中引入jar包: cas-client-core-3.3.3.jar

2.        修改Web.xml配置(项目的web.xml)

<!-- ======================== 单点登录开始 ======================== -->
    <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 -->
    <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>
           <param-value>http://localhost:8080/cas</param-value>
           <!--这里的server是服务端的IP -->
       </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:8080/cas</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>
 
    <!-- ======================== 单点登录结束 ====================== -->


3.  项目登录页面配置,加入如下代码

<%
AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
Map<String, Object> attributes = principal.getAttributes();
%>


4.  js控制自动登录(这里根据自己项目的配置)

    

  $(function(){
         var name='<%=attributes.get("username")%>';
          var pwd='<%=attributes.get("password")%>';
          if(name!=null && pwd!=null)
          {
             $('body').html("正在跳转,请稍后...");
            
                 $.ajax({
                 type:"post",
                 dataType:"html",
                 url:"user!login?userid="+name+"&password="+pwd,
                 success:function(data){
                   if(data=="N")
                   {
                     alert("用户名或密码错误!");
                       
                   }else if(data=="P"){
                   
                  alert("您没有登录权限!");
                   }else{                
                      window.location.href="index.jsp";
                   }
                 }
              });
          }
      });

三 配置服务端(CAS Server)

 

1.        在tomcat的lib目录下或者是cas项目的lib目录下引入jar包:

cas-server-core-4.0.0.jar

cas-server-support-jdbc-4.0.0.jar

commons-dbcp.jar//看自己数据源定义,本demo采用的是dbcp

mysql-connector-java-5.1.7-bin.jar

等jar

2.   

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值