请教:怎样实现分别在两台服务器上的web应用用户的singleon?
我原来想将session保存在数据库中,然后在另外一个应用中将session复制过来的,但是我不知道怎么确定是哪个session?用户请求的URL被redirect到另一个应用后session id好像也已经变了?
这不是一件简单的事情,tomcat也有session cluster,你试验看看吧。
登陆应用:统一验证登陆,然后转交给LoginAdaptor为相应的应用进行用户授权。
LoginAdaptor:接受到"登陆应用"的处理结果后,进行授权。
CheckLogin: 检查用户是否登陆,否则转向到"登陆应用"
登陆应用
登陆请求方式是
targetApp=app1
targetURL=user_request_target_url
如果该用户在这里没有登陆过,则要求登陆,否则直接获取用户ID,根据targetApp知道相应的LoginAdaptor的url(例如http://xxx/LoginAdaptor),把用户ID,user_request_target_url等拼接成一个URL让客户redirect到
http://xxx/LoginAdaptor?user_request_target_url&authed_userid=xxx&check_key=xxx&hashed_value=xxx
LoginAdaptor
接收到上面的请求后,根据本地的方式授予authed_userid相应的权限(例如在session中设置或者设置remoteUser),然后转向到user_request_target_url处理应用,check_key和hashed_value是用来进行安全检查的(例如check_key可以与时间相关,hashed_value则是checked_key经过某种算法例如md5得到的结果)
描述有点混乱,希望能看明白和有所帮助!
http://www.yale.edu/tp/cas/
http://www-106.ibm.com/developerworks/java/library/wa-singlesign/?ca=dgr-lnxw1wCASsso
有使用经验吗?不知道使用起来是否麻烦?有时间要研究一下,看是否有必要,能不能替换目前自己的实现!