java GWT身份验证用户会话
我的web应用程序由两部分组成:
- 完成所有工作的GWT应用程序李>
- 手工servlet旨在处理OpenID身份验证功能李>
我需要把p.2连接到p.1。我正在读LoginSecurityFAQ,所以我想确认一下我的理解是否正确
- 一旦OpenID提供者确认用户是正常的并给了我它的身份,我就应该注册会话李>
- 要“注册”会话,我应该在数据库的某个地方存储OpenID标识和会话标识(标识=”https://www.google.com/accounts/o8/id?id=wwyruiwncuyrwieruyfakefakefake会话id是一个大的随机字符串,如“hiuhoiuhiuuy87y*&;TTGI6YUYGUYGUGGGGG^G6g”)
- 该会话id应存储在客户端的cookie中李>
- 每次从客户端发送任何请求时,在服务器端,我都应该检查客户端的会话id是否仍然足够新鲜(活动),并且还应该使用它来解析客户端的标识,以备需要李>
是这样吗?在会话ID非常大的情况下,它是否足够安全
# 1 楼答案
你的想法是对的,我差不多也是这样做的
请注意:
1)如果你想保持身份,别忘了设置正确的领域。根据OpenID提供者的不同,您可能会在下次登录时为同一用户提供不同的身份。我认为谷歌的OpenID要求你使用服务器名和端口:
2)为什么要创建自己的会话管理?这是相当多的额外工作,你可能最终会写一些不安全的东西。使用常见的http servlet会话
3)如果使用http会话,则不需要管理会话超时,但如果需要拦截所有GWT RPC调用,正确的位置可能是覆盖RemoteServiceServlet实现中的服务方法