【发布时间】:2013-02-17 06:38:21
【问题描述】:
如何修改HttpServletRequest 中的"requestedSessionId" 属性?
public class MySecurityContextPersistenceFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
if (req instanceof HttpServletRequest) {
HttpServletRequest httpServletRequest = (HttpServletRequest) req;
httpServletRequest.getRequestedSessionId();
//Modify this value ?
}
}
我尝试这样做的原因是我的客户端应用程序不处理 Cookies..
所以会话 ID 是在 "body" 中发送的,这就是我想从中获取我的 JSESSIONID 并将其设置在请求中以便稍后由 SpringSecurityFilterChain 处理的位置。
【问题讨论】:
-
如果客户端不接受cookie,为什么不使用url-encoding?
-
因为我不知道这是什么 :) 它允许在 URL 中传递会话 ID 吗?
-
当客户端不支持cookies时,会话ID编码在URL中。你需要做的就是使用这个api:docs.oracle.com/javaee/6/api/javax/servlet/http/…
-
是的,我只是用
;jsessionid=参数发现了这一点。谢谢
标签: java servlets servlet-filters