`
bh三少
  • 浏览: 102081 次
  • 性别: Icon_minigender_1
  • 来自: 北海
社区版块
存档分类
最新评论

cas客户端应用实现

 
阅读更多

cas服务器端的开发请参考:

http://xiaomage9498-126-com.iteye.com/blog/1317058

本文的内容以以上文章的内容为前提。

下面主要讲解cas客户端的开发,开发两个简单的web应用。

1、在eclipse下新建一个web工程,名为casclient1

解压下载的cas-client-3.1.12.zip包,复制modules下的所有jar包到工程的/WEB-INF/lib下;配置web.xml文件,如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>casclient1</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地址 -->
  		<param-value>https://sso.unifyaa.com:8443/cas/login</param-value>
  	</init-param>
  	<init-param>
  		<param-name>serverName</param-name>
                <!-- 设置本应用的访问地址及端口 -->
  		<param-value>http://sso.unifyaa.com: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>https://sso.unifyaa.com:8443/cas</param-value>
  	</init-param>
  	<init-param>
  		<param-name>serverName</param-name>
  		<param-value>http://sso.unifyaa.com: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>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 2、开发一个简单的jsp页面

在工程的WebContent目录新建一个index.jsp,如:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="org.jasig.cas.client.authentication.AttributePrincipal" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>casClient1</title>
	</head>
	<body>
		<% 
			AttributePrincipal principal = (AttributePrincipal)request.getUserPrincipal();
			String userName = principal.getName();
		%>
		<br />--------------------------------------------<br />
		<h1>登录成功,CAS客户端1。</h1><br />
		<h2>当前登录用户:<%= userName %></h2><br />
		<a href="http://sso.unifyaa.com:8080/casclient2/index.jsp">进入客户端2</a><br />
		<a href="https://sso.unifyaa.com:8443/cas/logout">退出</a><br />
	</body>
</html>

 3、设置Tomcat

我用的是tomcat6.0.32,在部署的时候tomcat自带的jar包和工程的jar包发生冲突,需要修改%TOMCAT_HOME%\conf\context.xml文件,在文件中加多一句:<Loader delegate="true" />,表示优先使用应用的包而不使用tomcat自带的包,避免包冲突。

4、以同样的方式新建多另一个工程,名为casclient2。

5、部署casclient1和casclient2到tomcat,和cas server部署在同一个tomcat下,启动tomcat,在浏览器输入:http://sso.unifyaa.com:8080/casclient1,浏览器就会跳转到https://sso.unifyaa.com:8443/cas/login 页面提示用户登录,填写正确的用户名及密码后就会跳转到http://sso.unifyaa.com:8080/casclient1的index.jsp页面了,同时可在caslient1中点击链接访问casclient2应用而不用登录。

6、若把cas Server、casclient1、casclient2分别部署在不同机子的tomcat上,需要把证书导入到casclient1和casclient2的机子上,并修改tomcat的相关配置,同时需要在部署casclient1和casclient2的机子修改hosts文件,映射cas Server的IP。

分享到:
评论

相关推荐

    cas客户端登陆配置文档

    本配置文档将深入探讨如何配置CAS客户端以实现自定义登录和与服务端统一登录的功能。 首先,我们需要理解CAS的基本工作流程:用户尝试访问受保护的应用,被重定向到CAS服务器进行身份验证,成功后返回一个票据...

    cas客户端java版

    在Java环境中,CAS客户端库使得应用程序能够与CAS服务器进行交互,实现用户的身份验证。 标题“cas客户端java版”指的是在Java环境下使用的CAS客户端库,它允许Java应用与CAS服务器进行集成,从而实现用户认证过程...

    整合spring+springWebMVC+cas客户端

    在IT行业中,集成Spring、Spring Web MVC和CAS客户端是一项常见的任务,主要用于构建安全的Web应用程序。下面将详细解释这些技术及其整合过程。 首先,Spring是一个开源的Java框架,它简化了开发过程,提供了依赖...

    CAS客户端php版

    在本案例中,"CAS客户端php版"是一个用于PHP开发的CAS客户端库,它实现了CAS服务器的交互,使PHP应用程序能够利用CAS进行身份验证。 首先,我们需要了解CAS的工作流程: 1. 用户尝试访问受保护的资源。 2. 如果用户...

    CAS单点登录(SSO)服务端自定义认证+CAS客户端配置+CAS完整使用文档+CAS4.2.7 cas-serv服务端源码 cas-client客户端源码

    本压缩包提供了CAS服务端自定义认证的实现,以及CAS客户端的配置示例,适用于需要构建安全认证系统的IT专业人员。以下是对压缩包中内容的详细解释: 1. **CAS服务器端自定义认证**: CAS服务端的核心功能在于验证...

    cas客户端jar包

    6. **单点登出(Single Sign-Out, SSO)**: CAS客户端还支持单点登出功能,当用户在CAS服务器上注销时,客户端应用也能同步注销用户。 7. **测试与调试**: 集成后,务必进行充分的测试,确保CAS客户端与你的应用...

    cas客户端集成单点登录代码

    CAS服务器作为一个中心认证服务,用户只需在该服务器上进行一次身份验证,之后便可以在所有已集成的CAS客户端应用中自由切换,而无需再次登录。这种机制极大地提升了用户体验和安全性。 集成CAS客户端的步骤通常...

    cas客户端所需lib

    在提供的压缩包文件中,我们看到几个关键的库文件,它们是构建CAS客户端应用程序所必需的组件。 1. **cas-client-core-3.4.1.jar**: 这是CAS客户端的核心库,包含了处理与CAS服务器交互的所有必要类和方法。它...

    cas .net客户端的配置代码

    1. **安装CAS客户端库**:通常,我们可以通过NuGet包管理器安装`Castle.Services.Ticket`或`CasClient2`等CAS客户端库。 2. **配置web.config**:在项目的web.config文件中添加相应的CAS配置节。这包括设置CAS...

    java-cas客户端client安装包

    综上所述,Java CAS客户端提供了一套完整的解决方案,帮助开发者将SSO功能集成到Java应用中,通过与CAS服务器的交互,实现安全的身份验证和授权。正确配置和使用Java CAS客户端,可以显著提高应用程序的安全性和用户...

    cas客户端集成单点登录代码3

    在本文中,我们将深入探讨如何进行CAS客户端集成,以实现单点登录的登录登出功能。 单点登录允许用户在访问多个相互信任的应用系统时只需登录一次,后续访问其他系统时无需再次输入凭证。CAS作为SSO的核心组件,...

    CAS 客户端所有jar文件

    这个库提供了配置和集成CAS客户端到应用程序的API,例如验证服务票证(Service Ticket),发起代理认证请求(Proxy Granting Ticket)以及生成和解析CAS协议的消息。同时,它还负责处理重定向、URL解码、加密和解密...

    cas的客户端

    CAS客户端是实现与CAS服务器交互的关键部分,它允许用户通过CAS服务器进行身份验证,而无需在每个应用中单独登录。 在深入探讨CAS客户端之前,我们先理解一下SSO的概念。SSO允许用户通过一次登录就能访问多个相互...

    cas客户端war包和project源代码

    当我们拿到一个CAS客户端的war包时,这意味着我们拥有了一个可以直接部署到服务器上的Web应用,它负责处理用户的身份验证请求并与CAS服务器进行通信。 【标签】"cas":CAS是一种广泛使用的身份验证协议,它允许用户...

    CAS的ASP.NET客户端配置及验证

    在ASP.NET环境中配置CAS客户端可以帮助开发者构建一个允许用户通过单一登录凭证访问多个应用系统的平台。本篇文章将深入探讨如何在ASP.NET应用程序中配置CAS客户端,并进行验证流程。 首先,理解SSO的基本概念是至...

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

    CAS(Central Authentication Service)是...通过这个实例,你可以深入了解SSO的工作原理,学习如何配置和部署CAS服务,以及如何在自己的应用中实现CAS客户端,这对于提升企业级应用的安全性和用户体验有着重要的作用。

    单点登录CAS.net客户端源码

    单点登录(Single Sign-On, SSO)是一...此源码提供了一个基础的.NET CAS客户端实现,可以帮助开发者快速集成SSO功能,减少重复的身份验证过程,提升用户体验。不过,具体实现可能需要根据实际项目需求进行调整和优化。

    Spring Security集成CAS客户端实例

    **Spring Security集成CAS客户端实例详解** 在Web应用中,安全是至关重要的,Spring Security和CAS(Central Authentication Service)是两种广泛使用的安全框架。本实例旨在展示如何将Spring Security与CAS结合,...

    CAS客户端开发说明1

    【CAS客户端开发说明】这篇文档是关于如何进行CAS...总的来说,这个指南详细阐述了建立CAS客户端开发环境、配置、测试以及开发中的关键步骤,为开发者提供了一个清晰的流程,帮助他们理解和实现基于CAS的SSO解决方案。

Global site tag (gtag.js) - Google Analytics