-
关于SSO单点登录异常问题0
各位高手,帮忙,现在在弄一个单点登录的项目,
弄了好几天了,也不知道是哪里的问题,现在对问题进行简单描述:
开发语言:java;
现在在我们项目上进行单点登录,可以正确跳转到单点服务器,在单点服务器上登录之后,也可以正常跳转到我们的项目,这是没问题的,
但是在第三方网站上进行登录,登录之后,点击链接到我们的服务器上,就会报错,后台原因提示:NO Proxy Ticket found for[] ……ticket 'ST-845-t90UYls61EpT9oGNJZxD-ctsso.zte.com.cn' not recognized
环境是spring mvc
现在项目已经上线,可以通过外网访问,
我们项目地址:http://testservice.wg-service.com:8000/
单点登录地址:http://ctsso.zte.com.cn:6080/login
第三方项目地址:http://www.wg-service.com
第三方项目地址链接到我们项目的链接:http://www.wg-service.com/appstore_ec/new_portal/mobleWeb.jsp (点下面的适配测试)
以下是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>ntc_zte</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- CAS单点登录 --> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener> <filter> <filter-name>SSO Single Sign Out Filter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> </filter> <filter-mapping> <filter-name>SSO Single Sign Out Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>SSO Validation Filter</filter-name> <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <param-value>http://ctsso.zte.com.cn:6080/</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://testservice.wg-service.com:8000/</param-value> </init-param> </filter> <filter-mapping> <filter-name>SSO Validation Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>SSO Filter</filter-name> <filter-class>controllers.SSOFilter</filter-class> <init-param> <param-name>casServerLoginUrl</param-name> <param-value>http://ctsso.zte.com.cn:6080/login</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://testservice.wg-service.com:8000/</param-value> </init-param> </filter> <filter-mapping> <filter-name>SSO Filter</filter-name> <url-pattern >/user/login</url-pattern> <url-pattern >/user/test/*</url-pattern> <url-pattern >/user/testcase/*</url-pattern> <url-pattern >/user/project</url-pattern> <url-pattern >/user/project/*</url-pattern> <url-pattern >/user/result/taskresult</url-pattern> <url-pattern >/user/result/summary</url-pattern> <url-pattern >/user/result/ajaxdevice</url-pattern> <url-pattern >/user/account/*</url-pattern> <url-pattern>/user/remotecontrol/*</url-pattern> </filter-mapping> <filter> <filter-name>SSO HttpServletRequest Wrapper Filter</filter-name> <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> </filter> <filter-mapping> <filter-name>SSO HttpServletRequest Wrapper Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>SSO Assertion Thread Local Filter</filter-name> <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class> </filter> <filter-mapping> <filter-name>SSO Assertion Thread Local Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>setCharacterEncoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>setCharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>Kaptcha</servlet-name> <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class> <init-param> <param-name>kaptcha.border</param-name> <param-value>no</param-value> </init-param> <init-param> <param-name>kaptcha.textproducer.font.color</param-name> <param-value>black</param-value> </init-param> <init-param> <param-name>kaptcha.textproducer.char.space</param-name> <param-value>5</param-value> </init-param> <init-param> <param-name>kaptcha.background.clear.from</param-name> <param-value>51,153,255</param-value> </init-param> <init-param> <param-name>kaptcha.background.clear.to</param-name> <param-value>255,255,255</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Kaptcha</servlet-name> <url-pattern>/Kaptcha.jpg</url-pattern> </servlet-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-hibernate.xml classpath:spring-beans.xml</param-value> </context-param> <error-page> <error-code>404</error-code> <location>/404</location> </error-page> <error-page> <error-code>400</error-code> <location>/404</location> </error-page> <error-page> <error-code>405</error-code> <location>/404</location> </error-page> <error-page> <error-code>500</error-code> <location>/404</location> </error-page> <session-config> <session-timeout>30</session-timeout> </session-config> <context-param> <param-name>webAppRootKey</param-name> <param-value>ntczteroot</param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>WEB-INF/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>3000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <filter> <filter-name>ExpiresFilter</filter-name> <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class> <init-param> <param-name>ExpiresByType image</param-name> <param-value>access plus 10 years</param-value> </init-param> <init-param> <param-name>ExpiresByType text/css</param-name> <param-value>access plus 10 years</param-value> </init-param> <init-param> <param-name>ExpiresByType application/javascript</param-name> <param-value>access plus 10 years</param-value> </init-param> </filter> <filter-mapping> <filter-name>ExpiresFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> </filter-mapping> <filter> <filter-name>etagFilter</filter-name> <filter-class>org.springframework.web.filter.ShallowEtagHeaderFilter</filter-class> </filter> <filter-mapping> <filter-name>etagFilter</filter-name> <url-pattern>/user/test/*</url-pattern> <url-pattern>/user/login</url-pattern> <url-pattern>/user/account/*</url-pattern> <url-pattern>/user/result/*</url-pattern> <url-pattern>/user/resetpassword</url-pattern> <url-pattern>/user/reg?new</url-pattern> <url-pattern>/devices</url-pattern> <url-pattern>/welcome</url-pattern> <url-pattern>/help</url-pattern> <url-pattern>/radar</url-pattern> <url-pattern>/suggestion</url-pattern> <url-pattern>/agreement</url-pattern> <url-pattern>/about</url-pattern> <url-pattern>/bug/*</url-pattern> <url-pattern>/loginCheck</url-pattern> <servlet-name>petclinic</servlet-name> </filter-mapping> </web-app>
在线QQ 405540407 在线求解答,非常感谢
问题补充:没人回答吗2014年7月14日 11:25
7个答案 按时间排序 按投票排序
-
你第三方项目登录后肯定要得到一个ticket(第一次登录), 格式像你给的后台报错的那样 'ST-845-t90UYls61EpT9oGNJZxD-ctsso.zte.com.cn'
然后登录你们的系统url如下:
http://testservice.wg-service.com:8000/?ticket=ST-845-t90UYls61EpT9oGNJZxD-ctsso.zte.com.cn
你可以直接在浏览器里输入url试试能不能登录。
你的SSO和我们的项目有点不同,我们的系统是这样的
所有接入SSO的系统都不能匿名访问,第一次访问都会强制跳转到SSO登录页面去登录验证,登录成功后进入系统,只有登录一次,系统间就可以相互访问了. 而你们的系统没有拦截,可以匿名访问,你可以看看SSO关于匿名登录这方面的知识。2014年7月15日 10:52
-
我原来搞过SSO 记得在服务器上要配置域
<init-param>
<param-name>kaptcha.background.clear.from</param-name>
<param-value>51,153,255</param-value>
</init-param>
<init-param>
<param-name>kaptcha.background.clear.to</param-name>
<param-value>255,255,255</param-value>
</init-param> 这个是配置的域吗?2014年7月15日 01:55
-
单点登陆 是只要在中心服务器上登陆了所有子服务器都能共享session
从你这个报错上看的出你这个中心系统用了票据验证,第三方项目登陆后貌似是票据丢失了,看看是不是过滤器的问题。2014年7月14日 22:23
相关推荐
SSO单点登录技术是现代企业级应用架构中不可或缺的一部分,它通过统一的身份认证服务提升了用户体验,降低了运维复杂度。"Simple-SSO"项目为开发者提供了一个学习和实践SSO的平台,结合Maven的项目管理,使得分布式...
【SSO单点登录解决方案】 单点登录(Single Sign-On,简称SSO)是一种企业级IT解决方案,旨在解决用户在访问多个相互关联的应用系统时反复输入登录信息的问题。当用户在一个系统中验证身份后,无需在其他信任的系统...
总之,基于Node.js和Express的SSO单点登录实践是一个涉及Web开发、身份验证、数据库操作等多个领域的综合性项目。通过合理的设计和实现,我们可以构建出高效、安全的SSO系统,提升用户体验,同时降低运维复杂度。在...
单点登录(Single Sign-On,简称SSO)是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。在这个"SSO demo 单点登录"示例中,我们看到使用了SSH(Spring、Struts2、...
**SSO(Single Sign-On)单点登录**是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。在Web应用程序中,MVC(Model-View-Controller)架构常被用来构建SSO系统,因为它...
在这个“sso单点登录服务端程序”中,我们关注的是实现SSO功能的服务端部分。 单点登录的核心在于中央认证服务(CAS,Central Authentication Service)或身份提供者(IdP,Identity Provider)。这个服务端程序...
SSO(Single Sign-On)单点登录是一种网络应用中...总结来说,SSO单点登录实例是一个学习和实践SSO技术的好材料。通过理解和运行这个Demo,你不仅能掌握SSO的基本原理,还能了解到如何在实际开发中实施和优化SSO系统。
JToken SSO单点登录模块是为了解决这一问题而设计的,它简化了在多个应用之间实现SSO的复杂过程。 SSO的工作原理通常涉及以下步骤: 1. 用户首次访问应用A,如果尚未登录,会被重定向到SSO服务器。 2. 用户在SSO...
在这个"SSO单点登录demo"中,我们主要探讨如何利用Java Servlet技术来实现这一功能。 在Java Web开发中,Servlet是一个Java类,它用于扩展服务器的功能。在SSO场景下,Servlet可以作为验证中心,处理用户的登录请求...
【CAS_SSO单点登录实例详细步骤】 CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On,简称SSO)框架,它允许用户通过一个认证入口访问多个应用系统,而无需多次登录。以下是对CAS_SSO单...
SSO(Single Sign-On)是单点登录的缩写,是一种网络用户身份验证的机制,允许用户在一次登录后,可以访问多个相互信任的应用系统,而无需再次进行身份验证。这个压缩包文件提供了SSO的完整实现,适用于跨域场景,...
【标题】:“Domino Lotus SSO 单点登录配置教材” 【内容】: 单点登录(Single Sign-On,简称SSO)是一种网络安全技术,它允许用户通过一次登录就能访问多个应用系统,无需反复输入凭证。在Lotus Domino环境中,...
SSO(Single Sign-On)单点登录...综上所述,C#.NET的SSO单点登录BLL部分主要涉及身份验证、会话管理、授权决策等业务逻辑,同时可能需要处理文件格式转换。在实际开发中,需要确保系统的安全性、可扩展性和用户体验。
总的来说,通过实践这个基于Spring Security OAuth2的SSO单点登录案例,你将能够掌握如何在分布式系统中构建安全的单点登录系统,这对于任何需要统一用户管理的大型企业或平台都是非常有价值的。
单点登录(Single Sign-On,简称SSO)是一种网络用户身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入认证信息。这种机制极大地提高了用户体验,减少了用户记忆多套账号密码的困扰,...
单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次验证即可访问多个相互关联的系统。在IT行业中,SSO技术广泛应用于企业级应用,提高用户体验,简化管理并增强安全...
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。本概要设计说明书主要针对SSO的实现进行详细阐述,旨在提高用户体验,简化企业内部或...
SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。这一技术在现代企业信息化建设中扮演着重要角色,因为它提供了便捷的用户体验,同时...
SSO(Single Sign-On)单点登录是一...总之,SSO单点登录不仅提高了用户体验,也简化了企业的身份管理。在Struts2框架下,通过合理的设计和编程,我们可以构建一个高效、安全的SSO解决方案,实现跨系统的无缝登录体验。
综上所述,SSO之CAS单点登录提供了一种高效、安全的身份验证解决方案,简化了用户访问多应用的流程,同时也便于管理员管理和监控用户行为。对于大型组织,采用CAS进行SSO集成可以显著提升用户体验并加强信息安全。在...