SSO的实现(1)——Passport Server

Passport Server用于验证用户、维护登录状态并提供用户状态信息。其核心是Ticket和TicketCache类,TicketCache会定期清理过期Ticket。它提供Login、Logout、Profile接口,成员网站可通过Profile获取用户登录信息。实现单点登录关键在于跨域传递TicketID,而跨域传递Cookie是最大问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Passport Server的作用是验证用户、保存维护登陆状态、为成员网站提供当前某用户的状态信息。

Passport Server核心部分为两个类,Ticket 和 TicketCache
    Ticket为登陆用户的基本信息类,包含一个随机生成的TicketID,和用户帐号及其他用户信息。
    TicketCache负责维护当前所有的Ticket信息,目前我的程序中其实就是继承的Hashtable,TicketCache初始化时启动一Timer定期清理过期的Ticket。TicketCache保存在Application Server的ServletContext中,确保所有会话均可读取。

Passport Server提供的接口主要为Login、Logout、Profile
    其中Login、Logout为登录、注销的Servlet
    Profile为成员网站提供Ticket的登陆信息,成员网站通过此接口读取到以XML格式返回的Ticket信息,从而判断用户是否登陆。

Passport Server与成员网站之间实现一次登陆,全部站点皆可使用的关键是如何在多个站点之间传递TicketID,以便成员网站从Passport Server读取到该用户的登陆状态。这需要借助与Cookie,如何实现Cookie的跨域传递成为解决SSO的最大问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值