`
andy_ghg
  • 浏览: 290492 次
  • 性别: Icon_minigender_1
  • 来自: 扬州
社区版块
存档分类
最新评论

CAS配置第三步:客户端的配置

    博客分类:
  • Java
阅读更多
紧接上一篇:CAS配置第二步:服务器端的配置
CAS Java 群35271653

在MyEclipse中新建一个Java Web项目,加入cas-client-3.2.0.jar(下载地址见附件)
修改web.xml中的配置,加入CAS的过滤器(Filter)如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<!-- CAS 相关配置文件-->
	<!-- 单点登出,一定要在最前面  -->
	<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>
	<listener>
		<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
	</listener>
	<!--单点登录 -->
	<filter>
		<filter-name>CAS Authentication Filter</filter-name>
		<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
		<!-- CAS login 服务地址-->
		<init-param>
			<param-name>casServerLoginUrl</param-name>
			<param-value>https://andy:8443/cas/login</param-value>
		</init-param>
		<init-param>
			<param-name>renew</param-name>
			<param-value>false</param-value>
		</init-param>
		<init-param>
			<param-name>gateway</param-name>
			<param-value>false</param-value>
		</init-param>
		<!-- 客户端应用服务地址-->
		<init-param>
			<param-name>serverName</param-name>
			<param-value>https://andy:8333</param-value>
		</init-param>
	</filter>

	<!--负责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>https://andy:8443/cas</param-value>
		</init-param>
		<init-param>
			<param-name>serverName</param-name>
			<param-value>https://andy:8333</param-value>
		</init-param>
		<init-param>
			<param-name>useSession</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>redirectAfterValidation</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>

	<filter>
		<filter-name>CAS HttpServletRequest WrapperFilter</filter-name>
		<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
	</filter>

	<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 Authentication Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<filter-mapping>
		<filter-name>CAS Validation Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<filter-mapping>
		<filter-name>CAS HttpServletRequest WrapperFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<filter-mapping>
		<filter-name>CAS Assertion Thread Local Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- CAS 配置文件结束 -->
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

然后编写index.jsp如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="org.jasig.cas.client.validation.Assertion"%>
<%@page import="org.jasig.cas.client.util.AbstractCasFilter"%>
<%@page import="org.jasig.cas.client.authentication.AttributePrincipal"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
  	你已经登录进来了兄弟,下面是你的登录信息:
  	<%
  	AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal(); 

  	Map<String, Object> attributes = principal.getAttributes();
  	String userId = "";
  	String userClass = "";
  	if(attributes != null) {
  		userId = attributes.get("UserId").toString();
  		userClass = attributes.get("UserClass").toString();
  	}
  	%>
  	<p><%=userId %></p>
  	<p><%=userClass %></p>
  	<%
  		if(session != null){%>
  			<p><%=session.getId() %></p>		
  		<%}
  	%>
  	
  	<a href="https://andy:8443/cas/logout">退出登录</a>
  </body>
</html>


将其部署到tomcat-cas-client中,并修改tomcat-cas-client的端口,需要修改多处。我这里修改成端口8333。

此时,同时启动tomcat-cas-server和tomcat-cas-client,如果端口不冲突的话,访问htps://andy:8333/WebProj/index.jsp时就会被过滤器拦截并定向到https://andy:8443/cas/login?service=https://andy:8333/WebProj/index.jsp
这个地址,后面的service在IE中可能会用%代替部分字符。
在此处输入你的数据库中的账号密码,如果验证通过就能进入到htps://andy:8333/WebProj/index.jsp了。
注意:
在index.jsp中,我通过AttributePrincipal获取参数时,里面的UserId和UserClass是之前在Server端配置好的,可以查看上一篇关于此处的说明:
CAS配置第二步:服务器端的配置
3
10
分享到:
评论

相关推荐

    CAS4.1.4服务端和客户端实例

    CAS4.1.4服务端和客户端实例,直接修改配置即可运行,详细参见博文:http://blog.csdn.net/chenhai201/article/details/50623395

    sso:cas单点登录系统,其中包括cas认证服务,配置中心,监控平台,服务管理的高可用项目

    第三方登录接收(QQ,微信,CSDN,GitHub) 绑定用户 验证码输出 自定义校验器 多属性返回 验证码发送,校验(注册发送邮箱验证码) 服务监控检测 校验码登录 单用户登录 教程: 域名:localhost 用户: 用户名 密码...

    Exchange2013部署详解

    第三节,安装Active Directory服务 7 3.1 AD域安装 7 3.1.1 AD主域控制安装 7 3.1.2 AD备份域控制器安装 7 3.2 DNS配置 8 第四节, 证书服务器配置 8 第五节, Exchange2013规划与部署 9 5.1、AD+Exchange服务器规划...

    grafana-authentication-proxy:Grafana 身份验证代理

    现在您可以对用户 A 使用索引 grafana-int-userA,对用户 B 使用 grafana-int-userB 受启发并基于 ,其中 99% 是目前由他们编写的,谢谢:) 我们Bigdesk支持Bigdesk或Head等第三方插件,因为它们很难测试和维护安装 ...

    auth-center:一站式登录权限管理系统

    集成第三方登录,与现有账号绑定,方便快捷 利用shiro实现权限管理,灵活快捷,可以控制到页面的菜单或者按钮,满足大部分的权限需求 模块介绍 auth-cas单点登录服务器端,所有客户端的用户登录都需要转移到cas...

    spring security 参考手册中文版

    第三部分 测试 97 11.测试方法安全性 97 11.1安全测试设置 98 11.2 @WithMockUser 98 11.3 @WithAnonymousUser 100 11.4 @用户详细信息 101 11.5 @WithSecurityContext 102 11.6测试元注释 104 12. Spring MVC测试...

    MaxKey单点登录认证系统-其他

    3、提供标准的认证接口以便于其他应用集成SSO,安全的移动接入,安全的API、第三方认证和互联网认证的整合。 4、提供用户生命周期管理,支持SCIM 2协议,基于Apache Kafka代理,通过连接器(Connector)实现身份供给...

    JAVA上百实例源码以及开源项目源代码

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码...

    JAVA上百实例源码以及开源项目

    第三步:在登陆后的界面文本框输入文本,然后发送 可以同时启动多个客户端 实现群聊。 浮动的广告 嵌套在html中 各种EJB之间的调用示例 7个目标文件 摘要:Java源码,初学实例,EJB调用实例  各种EJB之间的调用源码...

    Java并发编程实战

    第3章 对象的共享27 3.1 可见性27 3.1.1 失效数据28 3.1.2 非原子的64位操作29 3.1.3 加锁与可见性30 3.1.4 Volatile变量 30 3.2 发布与逸出32 3.3 线程封闭35 3.3.1 Ad-hoc线程封闭35 3.3.2 栈封闭36 ...

    计算机应用技术(实用手册)

    3.局域IP地址配置: 27 4.采用TP-LINK路由器连接上网: 27 第五章 系统常用命令及格式转换 30 1.Msconfig 系统的关闭起动项命 30 2.Dxdiag系统信息查看命令 30 3.Gpedit.msc计算机管理命令 31 4.格式之间的...

    java开源包3

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包1

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包11

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包2

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包6

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包5

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包10

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包4

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

Global site tag (gtag.js) - Google Analytics