四、测试页面
在proxy.test.com下部署个index.jsp,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="org.jasig.cas.client.validation.*,org.jasig.cas.client.util.*,org.jasig.cas.client.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>client one</title>
</head>
<body>
sso cas client one !!! 单点登陆客户端一 <br>
<p>hello : ${_const_cas_assertion_.principal.name}</p>
<a href="http://backend.test.com/personal">个人中心</a>
</body>
<script type="text/javascript">
$={
isIE : /MSIE/i.test(navigator.userAgent),
json2str:function(o,f){
var r = [];
if(o===undefined || o===null) return "null";
if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
if(typeof o == "object"){
if(!o.sort){
for(var i in o){
r.push((f?"\"" + i+"\":":i+":")+this.json2str(o[i],f));
}
if(this.isIE && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString))
r.push("toString:"+o.toString.toString());
r="{"+r.join()+"}";
}
else{
for(var i =0;i<o.length;i++)
r.push(this.json2str(o[i],f));
r="["+r.join()+"]";
}
return r;
};
return o.toString();
}
}
function showmsg(e){
alert($.json2str(e));
}
</script>
<%
String serviceUrl = "http://backend.test.com/test.do?jsback=showmsg";
final Assertion assertion=(Assertion)session.getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
final String proxyTicket = assertion.getPrincipal().getProxyTicketFor(serviceUrl);
request.setAttribute("serviceUrl",serviceUrl);
request.setAttribute("proxyTicket",proxyTicket);
%>
<script type="text/javascript" src="${serviceUrl}&ticket=${proxyTicket}"></script>
</html>
说明:1.http://backend.test.com/personal、http://backend.test.com/test.do两个接口多需要身份,一个返回页面,一个返回json
2.该页面测试重定向sso.test.com进行单点登陆
3.页面调用了backend service的一个接口,并将结果显示(cas2.0代理认证模式,此时用户并没有打开backend service)
4.点击“个人中心”进入backend service自动有身份(cas 1.0模式)
分享到:
相关推荐
在这个"cas代理模式代码示例"中,我们关注的是如何在CAS环境中实现这一模式。 1、**实现代理模式的相关配置**: 在Java中,我们可以使用静态代理或者动态代理(如Java的`java.lang.reflect.Proxy`类)来实现。静态...
在实际部署和开发过程中,我们需要借助一些工具来配置和调试CAS代理模式。这些工具可能包括CAS服务器的部署软件、CAS客户端库、日志分析工具等。例如,`proxyCAS.pdf`可能是一个详细的指南,讲解如何配置和使用Yale ...
这包括指定服务的URL、ID、以及是否允许代理认证等属性。服务注册是CAS识别和授权客户端应用的关键步骤。 6. **配置SLO(Single Logout)**:除了SSO,CAS还支持SLO,即单点注销。配置客户端应用以支持SLO,当用户...
它通过代理票证(Proxy Ticket)和服务票证(Service Ticket)机制,确保用户只需一次登录即可访问多个相互信任的应用系统。服务端是 CAS 架构的核心部分,负责处理用户的认证请求、验证服务票证以及管理用户会话。 ...
标题中的“简单配置基于CAS的单点登录”指的是在IT领域中实现的一种身份验证方法,称为Central Authentication Service(中央认证服务)的单点登录(Single Sign-On, SSO)。CAS是一种开源项目,它允许用户通过单一...
5. **代理票据(Proxy Ticket)**:在某些场景下,CAS支持代理票据,允许已认证的用户代表其他服务获取访问权限。在.NET客户端配置中,可能需要处理这种代理模式。 6. **定制化**:根据应用需求,可能需要自定义CAS...
**CAS代理服务** CAS(Central Authentication Service)中央认证服务是一种广泛应用的开源单点登录(Single Sign-On, SSO)协议,由耶鲁大学开发并维护。CAS的目标是为网络应用提供一个统一的验证系统,使得用户只...
在上述代码中,我们首先获取了 CAS 的 `Assertion` 对象,然后定义了两个服务地址 `serviceUrl3` 和 `serviceUrl4`,这两个服务都需要通过代理认证的方式进行访问。 ##### 3.6 关键步骤 - **获取代理票据**:代理...
在ASP.NET环境中配置CAS客户端可以帮助开发者构建一个允许用户通过单一登录凭证访问多个应用系统的平台。本篇文章将深入探讨如何在ASP.NET应用程序中配置CAS客户端,并进行验证流程。 首先,理解SSO的基本概念是至...
- **代理支持**:CAS除了基本的单点登录功能外,还支持代理机制,即允许一个服务代表另一个服务获取票证。这种功能非常适合需要跨服务共享身份验证信息的场景。 - **多因素认证**:随着安全性的提升,CAS也支持多...
CAS单点登录的经典配置,以及多数据库的处理方案 CAS单点登录是Single Sign-On(SSO)的一种实现,允许用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输入密码。CAS单点登录产品...
1. CAS协议理解:首先,你需要熟悉CAS的工作流程,包括票证(Ticket)的概念,如服务票证(Service Ticket)和代理票证(Proxy Ticket),以及它们在认证过程中的作用。 2. CAS服务器配置:部署和配置CAS服务器,...
1. **部署CAS服务器**:首先,需要下载CAS服务器的源码或者预编译的二进制包,并根据项目需求配置服务器环境。这可能涉及数据库连接、认证策略(如LDAP、数据库、Active Directory等)和SSL证书的设置。 2. **配置...
以上是CAS服务器和客户端的基本配置步骤,实际部署中可能还需要考虑其他的配置,例如服务注册、票证超时策略、代理认证等。为了实现更高级的功能,开发者需要对CAS的API和协议有深入理解,并根据具体需求进行定制化...
配置完成后,Velcro会与CAS服务器协同工作,提供SSO服务。在实际操作中,还需要对服务器和客户端的配置文件进行相应的调整,包括URL、服务定义、安全策略等。此外,对于多应用环境,可能需要设置服务映射和权限控制...
除此之外,还需要配置服务验证URL(`serviceValidateUrl`)、代理验证URL(`proxyValidateUrl`)等,以及可能的CAS客户端配置参数,如是否开启调试模式(`casClientDebug`),服务验证的URL模板(`...
配置包括设置CAS服务器地址、服务URL、票证验证URL等。同时,需要处理CAS过滤器,确保用户请求被正确地重定向到CAS服务器进行身份验证。 对于PHP客户端,可以使用phpCAS库。同样需要配置CAS服务器URL、服务URL等...
- 在配置文件中设置CAS服务器的URL、服务ID(对应你的应用)和其他相关参数。 - 定义一个过滤器,通常称为`CasAuthenticationFilter`,该过滤器负责拦截请求,引导用户到CAS服务器进行身份验证,并处理验证结果。 ...