`
andy_ghg
  • 浏览: 293781 次
  • 性别: 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
分享到:
评论

相关推荐

    cas客户端jar包

    3. **配置CAS服务器地址**: 在客户端配置中指定CAS服务器的地址,包括登录和验证的端点。 4. **票证验证策略**: 根据安全需求,可以选择不同的票证验证策略,例如HTTPS或HTTP。 5. **定制化行为**: 可以通过实现...

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

    4. 配置客户端应用,将CAS认证集成到你的应用中,这通常涉及添加和配置CAS过滤器,以及设置服务URL。 5. 测试SSO功能,确保用户能够通过CAS服务器进行一次性登录,并在不同应用间无缝切换。 通过这个实例,你可以...

    cas单点登录客户端--c++版

    C++标准库提供了`std::urlencode`函数,或者可以使用第三方库如cpprestsdk。 5. **证书与安全**:CAS服务通常使用HTTPS,因此客户端需要处理SSL/TLS证书。C++标准库提供了一些基础支持,但可能需要配合OpenSSL库来...

    Cas登录客户端jAR包

    另一个名为"casclient.jar"的文件可能是Cas客户端的另一个版本或特定实现,通常包含了一些额外的工具或辅助类,用于简化客户端配置和使用。 4. **Java JAR文件**: JAR(Java Archive)是Java平台特有的归档格式...

    cas客户端配置

    要添加自签名或第三方CA证书,可以使用`keytool`命令: ``` keytool -importcert -file your_certificate.crt -alias your_alias -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit ``` 4. **...

    WAS与CAS配置

    3. CAS Client端在WAS服务器上的配置:客户端配置包括设置WAS服务器上的CAS客户端,以便它能够与CAS服务器通信并验证用户身份。 4. CASTAI(Trust Association Interceptor API)的配置:TAI是WAS提供的一个功能...

    用cas实现mantis单点登录和登出

    ##### 第三步:CAS 客户端配置 在 `casphp` 目录下的 `login_cas.php` 文件中,需要对 CAS 服务器的相关参数进行配置,包括但不限于: 1. **CAS 服务器的主机名**: ```php $cas_host = 'localhost'; ``` 2. **...

    cas3.5.0集成oauth2.0协议

    要充分利用这个示例,你需要根据自己的环境对配置文件进行适当的修改,如设置正确的URL、客户端ID和密钥,并确保CAS服务器和第三方服务的配置一致。然后,通过运行示例应用,你可以观察到OAuth2.0授权和令牌交换的...

    转载CAS_SSO单点登录实例详细步骤

    ### 第三步:导入客户端JVM的密钥库 接下来,需要将生成的服务器证书导入到JVM的信任证书库中。默认情况下,JVM使用`cacerts`文件来存储信任的证书。命令如下: ``` keytool -import -keystore D:/jdk1.5.0_12/jre/...

    django+cas环境部署

    - **CAS客户端部署测试**:下载CAS客户端所需依赖,并在客户端中进行相应的配置,以便与CAS服务器进行交互。 #### 三、系统使用注意事项 - 用户只能通过8000端口访问整个系统,一旦系统部署完成并投入生产环境后,...

    java源码:Java单点登录系统 JA-SIG CAS.rar

    - **cas-server-support-oauth**:支持OAuth协议的扩展,允许第三方应用安全地获取用户资源。 4. **CAS配置**: 在源码中,你会看到服务器和客户端的配置文件,如`cas.properties`,它们定义了CAS的行为,包括...

    cas-client-3.3.3-release和cas-server-4.2.1-release下载

    3. 解压`cas-client-3.3.3-release.zip`,将客户端库引入你的Web应用项目的依赖。 4. 在你的Web应用中配置CAS客户端,例如在`web.xml`中添加过滤器和监听器。 5. 配置应用服务器,使其指向CAS服务器的位置,并设置...

    cas-server-4.0.0-release与依赖包.zip

    5. **依赖库**:CAS运行所需的第三方库,包括Spring框架、Apache HttpClient等,这些库被用来处理HTTP请求、数据库连接等。 描述中的“CAS实现SSO单点登录”意味着CAS的主要功能就是提供SSO服务。它通过代理认证...

    CAS 单点登录,tomcat配置SSL,及资源

    3. 在应用系统中配置CAS客户端,包括服务ID、票证验证URL以及任何其他定制的CAS配置。 通过以上步骤,你可以实现CAS单点登录,并在Tomcat服务器上配置SSL,确保通信安全。同时,正确集成CAS资源,能够让你的应用...

    cas-client3.2.1

    1. **下载和导入JAR包**:首先,你需要从官方源或者第三方仓库下载`cas-client3.2.1`压缩包,并从中提取`cas-client-core-3.2.1.jar`到你的项目库中。 2. **配置应用**:在应用的`pom.xml`(如果你使用的是Maven)...

    CAS单点登录实例详细步骤

    #### 三、CAS SSO配置流程详解 ##### 第一步:证书生成与管理 **1.1 生成证书** 使用`keytool`工具生成用于SSL加密通信的证书,具体步骤如下: - 运行命令:`keytool -genkey -alias sjc -keyalg RSA -keystore ...

    Laravel开发-cas

    在Laravel 4.x版本中,可以通过第三方库如`jasig/laravel-cas`来实现CAS的集成。这个库提供了一个中间件,可以拦截请求,检查CAS票证,并根据票证处理用户身份验证。 **3. 安装与配置** 首先,你需要通过Composer...

Global site tag (gtag.js) - Google Analytics