我正在尝试在Twitter的servlet上运行OAuth实现。我在将用户重定向到Twitter身份验证页面时遇到了麻烦。当我得到回调时,它会返回到一个servlet,但会话是不同的,因为请求来自Twitter而不是我的webapp。
我尝试使用encodeRedirectURL将会话保持到外部站点,但这不起作用。需要帮助!
答案 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();