java - Servlet 编码重定向URL

标签 java session servlets oauth

我正在尝试在 Twitter 的 servlet 上运行 OAuth 实现。我在将用户重定向到 Twitter 身份验证页面时遇到问题。当我收到回调时,它会返回到 servlet,但 session 不同,因为请求来自 Twitter 而不是我的 Web 应用程序。

我尝试使用encodeRedirectURL 让 session 持续到外部站点,但这不起作用。需要帮助!

最佳答案

您必须将 session ID 添加为回调 URL 的 jsessionid 片段。 Twitter必须回调http://example.com/callbackservlet;jsessionid=1E6FEC0D14D044541DD84D2D013D29ED (注意:这里的 jsessionid 值只是一个示例)。

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

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

关于java - Servlet 编码重定向URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3674108/

相关文章:

java - 在自定义 Servlet 中不支持 POST 作为 Spring Boot 中的@Bean

java - java 声音有 .m4a 服务提供者接口(interface)吗?

jquery - 如何使用 Spring MVC 在 session 中保存字符串?

Java 计时器通过重绘加速

php - session 数组到 javascript 数组

ruby - Cookie 数据大小超过 4K - 但其 'only' 1100 字节已加密

java - 从 Http 请求中获取内容

Spring MVC DispatcherServlet 映射/vs/*

java - 使用 Java 的 Playframeowk 抛出 JPA 事务失败。由: there is no started appliaction引起

java - ClassCastException 与 JAXB - Websphere jar 与 applicationl jar