Servlets encodeRedirectURL

时间:2010-09-09 05:50:34

标签: java session servlets oauth

我正在尝试在Twitter的servlet上运行OAuth实现。我在将用户重定向到Twitter身份验证页面时遇到了麻烦。当我得到回调时,它会返回到一个servlet,但会话是不同的,因为请求来自Twitter而不是我的webapp。

我尝试使用encodeRedirectURL将会话保持到外部站点,但这不起作用。需要帮助!

1 个答案:

答案 0 :(得分:3)

您必须将会话ID添加为回调网址的jsessionid片段。 Twitter必须回调http://example.com/callbackservlet;jsessionid=1E6FEC0D14D044541DD84D2D013D29ED(注意:jsessionid值只是一个例子)。

当客户端已经支持cookie时,HttpServletResponse#encodeRedirectURL()(和encodeURL())不会对URL进行编码。你需要自己对其进行硬编码。

String url = "http://example.com/callbackservlet";
String encodedURL = url + ";jsessionid=" + request.getSession().getId();