stuart8
stuart8
2011-01-10 14:49

关于用httpclient结合servlet登录的问题

已采纳

想实现的情景是这样的,这是一个单点登录的体系。用户第一次访问Web应用,被重定向到认证中心登录,成功后认证中心重定向到该Web应用,然后该Web应用利用某些机制(如servlet)自动实现该合法用户登录,直接呈现登陆后的页面到浏览器。
(注认证中心通过本地的用户映射表找到该Web的真实用户名,然后返回给Web应用的是该应用自己的真实用户名。)
我现在想做的就是,在Web应用端拦截到用户名后查询到密码,然后用httpclient的postmethod去实现登录,结果浏览器直接显示的就是登录后的页面了。可以在servlet中用调用httpclient的postmethod,然后得到Web应用的cookie,再放在servelt的header里面,再redirect到Web登陆后的页面吗?可行吗?(Web应用采取cookie机制认证)。也不知道说明白了没,其实就是自动登录呈现页面的问题。真心求教。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • lang_shao lang_shao 10年前

    [quote]按你说的那样需要改很多原有系统的逻辑,不太好。我也想全网使用同一ID,这样各个Web应用都不用自己存储用户了,呵呵。可实际还要涉及权限什么的,所以登录、赋权这些都少不了。没办法,还有什么好办法吗?再次感谢。 [/quote]

    其实,也不用改多少。

    用户没登录时,就弹出认证中心的登录页。

    用户在认证中心登录后,认证中心调用Web应用的WebService,将用户信息作为参数传给Web应用,另外还有一个随机长字符串传过来。认证中心再重定向到Web应用的直接登录页,url中带有那个随机长字符串。

    Web应用的这页,接收到这个随机长字符串后,与认证中心通过WebService传来的进行对比,对比上了,就认为那个用户已经登录了,调用原来的登录方法(不再需要密码)。

    点赞 评论 复制链接分享
  • lang_shao lang_shao 10年前

    建议这样来做:
    1. 用户打开Web应用页面.

    1. Web应用发现用户未登录,发送一个请求给认证中心,并打开认证中心的登录页。

    2. 用户在认证中心中登录。

    3. 认证中心通知Web应用哪个用户登录了,将用户信息传给Web应用。

    4. Web应用认为当前用户已经登录了。

    点赞 评论 复制链接分享

相关推荐