无法与Spring-session整合,整合后登陆druid不能登陆

pdkcd3nj  于 2022-10-22  发布在  Spring
关注(0)|答案(2)|浏览(220)

输入正确的用户名密码后,还是跳转到druid的登陆页面,目前用spring-session与redis集群来存储session,如果关闭spring-session可以正常访问

ezykj2lf

ezykj2lf1#

这个是 spring session的坑,跟踪CookieHttpSessionStrategy发现,它的getRequestedSessionId()方法直接从request里面取cookie,但这里的request传过来的是SessionRepositoryRequestWrapper Package 类,但在wildfly下,sessionId是经过加工了的,格式:【SessionId】-【nodeId】,所以想解析正确的SessionId,必须从 Package 类中取出 Package 前的request对象,调用getRequestedSessionId()返回。所以修改CookieHttpSessionStrategy的getRequestedSessionId方法即可。
public String getRequestedSessionId(HttpServletRequest request) { HttpServletRequest httpServletRequest=(HttpServletRequest)((HttpServletRequestWrapper)request).getRequest(); String sessionId=httpServletRequest.getRequestedSessionId(); if(StringUtils.isNotBlank(sessionId)){ return sessionId; } Map<String, String> sessionIds = this.getSessionIds(request); String sessionAlias = this.getCurrentSessionAlias(request); return (String)sessionIds.get(sessionAlias); }

fcy6dtqo

fcy6dtqo2#

登录成功后 跳转 druid/index.html 没有 携带cookie,使用spring-session cookie 策略 无法获取登录信息 ,输入正确的用户名密码后,还是跳转到druid的登陆页面 。 能带上cookie吗。

相关问题