一种基于JAVA的SSO单点登录方法与流程

文档序号:16246019发布日期:2018-12-11 23:35阅读:341来源:国知局

本发明属于服务器登录技术领域,具体涉及一种基于java的sso单点登录方法。



背景技术:

我们在浏览器中,经常涉及到数据的交换,客户端请求服务器时,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个cookie。而客户端浏览器会把cookie保存起来。当浏览器再请求服务器时,浏览器把请求的网址连同该cookie一同提交给服务器。服务器通过检查该cookie来获取用户状态。就比如在登录服务器时,服务器需要通过登录信息判断当前登录用户是否合法用户以及是否需要重新登录等,目前使用的几种服务器登录方式,各有优缺点,如cookie是由服务器端生成,发送给user-agent(一般是浏览器),浏览器会将cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该cookie给服务器,cookie名称和值可以由服务器端开发自己定义,对于jsp而言也可以直接写入jsessionid,这样服务器可以利用cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在http传输中的状态。cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是cookies的功用,另一个重要应用场合是“购物车”之类处理,用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入cookies,以便在最后付款时提取信息,通过cookie方式持有登录状态,证明存在安全隐患,且不能跨域实现免登陆;还有通过jsonp方式持有登录状态,虽然可以模拟加密算法登陆子应用;采用依赖页面重定向的方式进行登录方式,虽然可以解决安全、跨域,但实现复杂,难以推广;采用用户登录逻辑和业务逻辑扭在一块的登录方式,项目复杂度过高,较难复用和推广,不可组件化,无法单独管理和权限控制;如果采用在整个产品线的各个产品之间,频繁登录方式,登录时需要频繁验证,增加使用的门槛,和降低了使用的整体体验感。



技术实现要素:

根据上述阐述,本发明的目的在于提供一种基于java的sso单点登录方法,使用token方式共享登录状态、登录标识,兼容cookie、302重定向等,减少对终端的依赖,集成spring的处理器,解决文件类表单。

本发明提供的技术方案:

一种基于java的sso单点登录方法,在用户,应用系统,sso系统和授权系统、第三方系统之间,完成如下步骤:

q1、通过cookie以及公用token票据进行单点登录,即用户登录应用系统,在首次登录时,直接登录sso系统,如果登录成功,则通过登录页面ldap验证,进入授权系统,获取授权信息的公用token票据,并将授权信息的公用token票据返回sso系统,并在应用系统中,用户的登录请求跳转到访问的页面,如登录不成功,则返回错误信息,并回到应用系统用户登录页面;

q2、再次访问应用系统页面时,通过请求get、post参数方式进入sso系统进行登录状态验证,验证是否已经登录,如sso系统验证已经处于登录状态,则返回应用系统访问页面,如验证未登录,回到应用系统用户登录页面;

q3、在sso系统验证已经处于登录状态,返回应用系统访问页面时,sso系统将授权信息的公用token票据传入第三方系统,第三方系统通过sso系统,依赖java过滤器,spring过滤器,进行登录状态的过滤,验证是否已经登录,如sso系统验证已经处于登录状态,则允许用户访问第三方系统,如验证未登录,回到应用系统用户登录页面。

上述技术方案中,在q2和q3中,允许应用系统,sso系统、第三方系统通过jvm缓存、redis等第三方缓存中间件,共享公用token票据。

上述技术方案中,共享公用token票据,在授权系统中,设立对应权限限制,权限分配,独立个人中心。

本发明不完全依赖浏览器cookie,兼容cookie、302重定向等,减少对终端的依赖,避免登录时过多的302重定向,通过使用token方式共享登录状态、登录标识,避免重复登录或恶意登录,集成spring的处理器,解决文件类表单。

具体实施方式

下面结合具体实施方式对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

一种基于java的sso单点登录方法,在用户,应用系统,sso系统和授权系统、第三方系统之间,完成如下步骤:

q1、通过cookie以及公用token票据进行单点登录,即用户登录应用系统,在首次登录时,直接登录sso系统,如果登录成功,则通过登录页面ldap验证,进入授权系统,获取授权信息的公用token票据,并将授权信息的公用token票据返回sso系统,并在应用系统中,用户的登录请求跳转到访问的页面,如登录不成功,则返回错误信息,并回到应用系统用户登录页面;

q2、再次访问应用系统页面时,通过请求get、post参数方式进入sso系统进行登录状态验证,验证是否已经登录,如sso系统验证已经处于登录状态,则返回应用系统访问页面,如验证未登录,回到应用系统用户登录页面;

q3、在sso系统验证已经处于登录状态,返回应用系统访问页面时,sso系统将授权信息的公用token票据传入第三方系统,第三方系统通过sso系统,依赖java过滤器,spring过滤器,进行登录状态的过滤,验证是否已经登录,如sso系统验证已经处于登录状态,则允许用户访问第三方系统,如验证未登录,回到应用系统用户登录页面。

在q2和q3中,允许应用系统,sso系统、第三方系统通过jvm缓存、redis等第三方缓存中间件,共享公用token票据;

对于共享公用token票据,在授权系统中,设立对应权限限制,权限分配,独立个人中心,在应用系统,sso系统和授权系统、第三方系统中使用公用token票据时,对应的进行数据验证,完成信息的安全。

以上描述了本发明的基本原理和优点。本行业的技术人员应该了解,本发明不受上述实施案例的限制,上述实施案例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明的要求保护范围由所附的权利要求书及其等效物界定。



技术特征:

技术总结
本发明提供了一种基于JAVA的SSO单点登录方法,在用户,应用系统,SSO系统和授权系统、第三方系统之间,通过Cookie以及公用Token票据进行单点登录,即用户登录应用系统,在首次登录时,直接登录SSO系统,如果登录成功,则通过登录页面LDAP验证,进入授权系统,获取授权信息的公用Token票据,通过公用Token票据在应用系统,SSO系统和授权系统、第三方系统之间数据共享,完成访问;本发明不完全依赖浏览器Cookie,兼容Cookie、302重定向等,减少对终端的依赖,避免登录时过多的302重定向,通过使用Token方式共享登录状态、登录标识,避免重复登录或恶意登录,集成Spring的处理器,解决文件类表单。

技术研发人员:宋国徽
受保护的技术使用者:北京中科梧桐网络科技有限公司
技术研发日:2018.08.16
技术公布日:2018.12.11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1