如何修改HttpServletRequest
中的"requestedSessionId"
属性?在HttpServletRequest中修改请求的会话ID
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 ?
}
}
为什么我想这样做的原因是,我的客户端应用程序不处理饼干..
所以会话ID在"body"
,而不是被发送,而这也正是我想获取我的JSESSIONID
并将其设置在请求中,以便稍后处理SpringSecurityFilterChain
。
如果客户端不接受cookies,为什么不使用url编码? – Cratylus 2013-03-02 22:30:51
Bacause我不知道这是什么:)它是否允许在URL中传递会话ID? – 2013-03-02 22:37:28
当客户端不支持cookie时,会话ID将在URL中进行编码。您需要做的就是使用此api:http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse .html#encodeURL%28java.lang.String%29 – Cratylus 2013-03-03 11:35:37