返回更多用户信息继...
配置ssoAuth/WEB-INF/view/protocol/casServiceValidationSuccess.jsp下进行配置如完整页面如下:
<%@page pageEncoding="gbk"%>
<%@ page session="false" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %><cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationSuccess>
<cas:user>${fn:escapeXml(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.id)}</cas:user>
<c:if test="${not empty pgtIou}">
<cas:proxyGrantingTicket>${pgtIou}</cas:proxyGrantingTicket>
</c:if>
<c:if test="${fn:length(assertion.chainedAuthentications) > 1}">
<cas:proxies>
<c:forEach var="proxy" items="${assertion.chainedAuthentications}" varStatus="loopStatus" begin="0" end="${fn:length(assertion.chainedAuthentications)-2}" step="1">
<cas:proxy>${fn:escapeXml(proxy.principal.id)}</cas:proxy>
</c:forEach>
</cas:proxies>
</c:if>
<c:if test="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes) > 0}">
<cas:attributes>
<c:forEach var="attr"
items="${assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes}"
varStatus="loopStatus" begin="0"
end="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes)-1}"
step="1">
<%-- Produce output exactly as CAS client code expects it: <cas:attrName>attrValue</cas:attrName>
格式一定要按照这种形式写,要不然在客户端时你得不到数据,因为服务器无法识别,大多数文章所定的那种形式
--%>
<cas:${fn:escapeXml(attr.key)}>${fn:escapeXml(attr.value)}</cas:${fn:escapeXml(attr.key)}>
</c:forEach>
</cas:attributes>
</c:if>
</cas:authenticationSuccess>
</cas:serviceResponse>
然后就在客户端返回用户信息,如下:
client jsp 通过这种形式可以获取到全部的用户信息:
<%
AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
Set attributeSet=principal.getAttributes().entrySet();
for(Iterator iter=attributeSet.iterator();iter.hasNext();){
Map.Entry attribute=(Map.Entry)iter.next();
out.println("key:("+attribute.getKey()+")--->"+"value:("+attribute.getValue()+")***");
out.println();
}
%>
9,给登录页设置验证码
1,在服务器ssoAuth/login上设置验证码.(login-webflow.xml)
2,自定义的登录页设置验证码(remoteLogin-webflow.xml)
查看这篇文章:http://blog.chinaunix.net/u2/86974/showart_1997021.html
要根据以上两种方案在不同的webflow中设置
10,解决如qq上qq邮箱单点登陆,我们用的是spark/openfire
我采用的是httpclient 登陆到ssoAuth/login上进行验证,获取到CASTGC这个cookie 然后在把他设置进要打
开的浏览器上,不过有个bug没有解决就是打开浏览器时cookie是如何写入到浏览器中?
1,要把cookie放在url上,转到一个servelet上进行写入cookie再中转,这个方法有缺陷.得到那个url在任何
浏览器都可以登陆.
2,查看了一下阿里旺旺的实现方式,他采用的是自己在im上写个服务器,然后进行cookie写入
分享到:
相关推荐
Struts2和CAS单点登录(SSO)的集成是一个常见的Web应用安全实践,它允许用户在一个系统登录后,无须再次输入凭证就能访问其他相互信任的系统。在这个例子中,我们将深入探讨如何在MyEclipse环境下使用Struts2框架与...
### Tomcat与CAS单点登录实现详解 #### 一、背景介绍 在现代企业级应用环境中,多个系统之间往往需要进行集成,以便于提供统一的用户体验和服务。其中一个关键的需求是实现单点登录(SSO, Single Sign-On)功能,即...
总结,这个压缩包提供了集成CAS单点登录到Maven项目所需的全部资源,包括服务端war包和客户端DEMO,是学习和实践SSO技术的好材料。通过深入理解和操作这些内容,你可以更好地掌握CAS的工作原理以及如何在实际项目中...
CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,简称SSO)系统,广泛应用于各类Web应用程序的身份验证。SSO允许用户通过一次登录,就能访问多个相互信任的应用系统,无需多...
总结起来,这个"cas单点登陆带attribute客户端示例程序"是学习和实现CAS SSO的一个宝贵资源。通过研究和调整这个示例,开发者可以快速地将CAS集成到自己的Java应用中,同时处理中文属性,提高应用的安全性和用户体验...
CAS 3.5.2 单点登录详解 CAS(Central Authentication Service)是一种流行的单点登录解决方案,主要用于提供统一身份验证和授权管理。CAS 3.5.2 是 CAS 的一个稳定版本,提供了许多实用的功能和配置项。在本文中,...
JEECG单点登录集成文档(kisso集成)详细介绍了如何将Kisso单点登录解决方案集成...通过以上知识点的总结,开发者能够更深入地理解Kisso在JEECG单点登录集成中的工作原理及实现方法,并能按照文档指南进行配置和开发。
CAS是一种开源的身份验证框架,它提供单点登录(SSO)功能,通常用于集中管理多个应用系统的用户认证。以下是对文章内容的详细解析: **一、目标与原则** 1. **不影响原有统一登录界面功能**:修改的目标是在保留...
"spring boot 1.5.4 集成shiro+cas实现单点登录和权限控制" Spring Boot 1.5.4 集成 Shiro+Cas 实现单点登录和权限控制是指在 Spring Boot 应用程序中使用 Shiro 框架和 Cas 服务器来实现单点登录和权限控制的功能...
CAS(Central Authentication Service)是一种广泛使用的开放源代码单点登录(Single Sign-On,SSO)框架,它允许用户通过一个中央认证服务访问多个应用系统,而无需为每个系统单独进行登录。在实际的企业环境中,...
总结来说,Tomcat实现单点登录SSO,主要通过配置合适的Realm,结合Cookie机制,实现用户身份在多个应用间的共享。同时,理解SSO的各种实现技术,如基于Cookie、Kerberos、SAML和CAS等,有助于选择最合适的SSO解决...
**JSP实现单点登录(Single Sign-On,SSO)详解** 在Web应用程序中,单点登录(Single Sign-On,SSO)是一种便捷的身份验证机制,允许用户在一次登录后,就能访问多个相互关联的应用系统,而无需再次输入凭证。在...
单点登录(Single Sign-On,简称SSO)是一种用户身份验证机制,允许用户在一个安全领域内访问多个应用系统,而无需多次输入身份验证信息。在税务行业信息化发展中,应用整合成为关键,SSO作为其核心组成部分,对于...
总结来说,"前后端未分离的单点登录"涉及到Java编程、SSO认证流程、CAS服务器的配置和使用,以及在非前后端分离架构下的安全性考虑。理解并实践这些知识点对于构建和维护大型企业级应用至关重要。
本篇文章将深入探讨这一主题,并基于给定的标签"SSO"、"Java"和"单点登陆"进行详细解析。 1. SSO原理: SSO的核心思想是用户只需在一个地方验证身份,然后这个验证结果可以被其他所有系统接受。这通常通过一个中心...
CAS 通过 Ticket 机制来实现单点登录,用户首先访问 CAS 服务器,CAS 服务器对用户进行身份验证,然后颁发 Ticket,用户可以使用 Ticket 访问多个应用系统。 Security Security 是 Spring 框架中的一个模块,提供...
描述中提到的"单点登陆(Single Sign-On,简称SSO)"是一种身份验证机制,允许用户在一次登录后访问多个相互信任的应用系统,无需为每个系统分别输入凭证。CAS(Central Authentication Service)是一个广泛使用的...
- **运行配置了CAS的子系统**:部署并运行配置了CAS的子系统,确保单点登录功能正常工作。 - **为CAS配置SSL** - **生成密钥**:生成用于HTTPS连接的密钥。 - **为jetty配置SSL**:配置jetty服务器以支持HTTPS。 ...