by kevin
21.
二月 2024 14:26
>
1. 配置文件中添加
[sourcecode language='xml' padlinenumbers='true']
server.servlet.session.tracking-modes=COOKIE
[/sourcecode]
2. 对每个请求的url判断,重新改写。
package com.ac;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
public class SessionUrlInterceptor extends HandlerInterceptorAdapter {
@Value("${sessionUrlEnable}")
private boolean sessionUrlEnable;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException, ServletException {
if (sessionUrlEnable && StringUtils.isNotBlank(request.getSession().getId())) {
String requestURI = request.getRequestURI();
String uriSession = ";jsessionid=" + request.getSession().getId();
LogUtils.logInfo("requestURI:" + requestURI + " sessionURI:" + uriSession);
if (requestURI.indexOf(uriSession) != -1) {
// LogUtils.logInfo("requestURI:" + requestURI + " Forward");
requestURI = requestURI.replace(uriSession, "");
request.getRequestDispatcher(requestURI).forward(request, response);
return false;
}
}
return true;
}
}