如何修改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