紧接上一篇: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. **配置CAS服务器地址**: 在客户端配置中指定CAS服务器的地址,包括登录和验证的端点。 4. **票证验证策略**: 根据安全需求,可以选择不同的票证验证策略,例如HTTPS或HTTP。 5. **定制化行为**: 可以通过实现...
4. 配置客户端应用,将CAS认证集成到你的应用中,这通常涉及添加和配置CAS过滤器,以及设置服务URL。 5. 测试SSO功能,确保用户能够通过CAS服务器进行一次性登录,并在不同应用间无缝切换。 通过这个实例,你可以...
C++标准库提供了`std::urlencode`函数,或者可以使用第三方库如cpprestsdk。 5. **证书与安全**:CAS服务通常使用HTTPS,因此客户端需要处理SSL/TLS证书。C++标准库提供了一些基础支持,但可能需要配合OpenSSL库来...
另一个名为"casclient.jar"的文件可能是Cas客户端的另一个版本或特定实现,通常包含了一些额外的工具或辅助类,用于简化客户端配置和使用。 4. **Java JAR文件**: JAR(Java Archive)是Java平台特有的归档格式...
要添加自签名或第三方CA证书,可以使用`keytool`命令: ``` keytool -importcert -file your_certificate.crt -alias your_alias -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit ``` 4. **...
3. CAS Client端在WAS服务器上的配置:客户端配置包括设置WAS服务器上的CAS客户端,以便它能够与CAS服务器通信并验证用户身份。 4. CASTAI(Trust Association Interceptor API)的配置:TAI是WAS提供的一个功能...
##### 第三步:CAS 客户端配置 在 `casphp` 目录下的 `login_cas.php` 文件中,需要对 CAS 服务器的相关参数进行配置,包括但不限于: 1. **CAS 服务器的主机名**: ```php $cas_host = 'localhost'; ``` 2. **...
要充分利用这个示例,你需要根据自己的环境对配置文件进行适当的修改,如设置正确的URL、客户端ID和密钥,并确保CAS服务器和第三方服务的配置一致。然后,通过运行示例应用,你可以观察到OAuth2.0授权和令牌交换的...
### 第三步:导入客户端JVM的密钥库 接下来,需要将生成的服务器证书导入到JVM的信任证书库中。默认情况下,JVM使用`cacerts`文件来存储信任的证书。命令如下: ``` keytool -import -keystore D:/jdk1.5.0_12/jre/...
- **cas-server-support-oauth**:支持OAuth协议的扩展,允许第三方应用安全地获取用户资源。 4. **CAS配置**: 在源码中,你会看到服务器和客户端的配置文件,如`cas.properties`,它们定义了CAS的行为,包括...
3. 解压`cas-client-3.3.3-release.zip`,将客户端库引入你的Web应用项目的依赖。 4. 在你的Web应用中配置CAS客户端,例如在`web.xml`中添加过滤器和监听器。 5. 配置应用服务器,使其指向CAS服务器的位置,并设置...
3. 在应用系统中配置CAS客户端,包括服务ID、票证验证URL以及任何其他定制的CAS配置。 通过以上步骤,你可以实现CAS单点登录,并在Tomcat服务器上配置SSL,确保通信安全。同时,正确集成CAS资源,能够让你的应用...
1. **下载和导入JAR包**:首先,你需要从官方源或者第三方仓库下载`cas-client3.2.1`压缩包,并从中提取`cas-client-core-3.2.1.jar`到你的项目库中。 2. **配置应用**:在应用的`pom.xml`(如果你使用的是Maven)...
5. **依赖库**:CAS运行所需的第三方库,包括Spring框架、Apache HttpClient等,这些库被用来处理HTTP请求、数据库连接等。 描述中的“CAS实现SSO单点登录”意味着CAS的主要功能就是提供SSO服务。它通过代理认证...
#### 三、CAS SSO配置流程详解 ##### 第一步:证书生成与管理 **1.1 生成证书** 使用`keytool`工具生成用于SSL加密通信的证书,具体步骤如下: - 运行命令:`keytool -genkey -alias sjc -keyalg RSA -keystore ...
在Laravel 4.x版本中,可以通过第三方库如`jasig/laravel-cas`来实现CAS的集成。这个库提供了一个中间件,可以拦截请求,检查CAS票证,并根据票证处理用户身份验证。 **3. 安装与配置** 首先,你需要通过Composer...
**CAS的实现与配置:** 实现CAS通常涉及以下步骤: - 配置CAS服务器,包括设置数据库连接、SSL证书等。 - 集成CAS客户端库到各个应用系统,如Spring Security的CAS模块。 - 配置应用系统以使用CAS服务器进行身份验证...