出大 Bug 了,本来公司年会的抽奖程序已被同事写好了,人事临危任命同事再改一下程序,内置特等奖是一位高管。
同事已开始也是拒绝的,奈何敌不住人事的诱惑。最终答应了更改程序,结果年会现场抽特等奖翻车了。
这事的结果先暂且不表。我发到群里后,群里的一位网友以为我在闲着,于是给我丢过来一个问题。SpringBoot 中如何把浏览器 url 中的 jsessionid 去掉。
这个问题很简单,分两种情况。
如果只是单纯的 SpringBoot,只需在启动类中继承 SpringBootServletInitializer,然后重写 onStartup 方法。
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
// This will set to use COOKIE only
servletContext.setSessionTrackingModes(
Collections.singleton(SessionTrackingMode.COOKIE)
);
// This will prevent any JS on the page from accessing the
// cookie - it will only be used/accessed by the HTTP transport
// mechanism in use
SessionCookieConfig sessionCookieConfig =
servletContext.getSessionCookieConfig();
sessionCookieConfig.setHttpOnly(true);
}
或者是在 yml 文件中,做以下配置:
server:
session:
# 会话sessionid存在cookie中,方便追踪,不设置会携带在url后面
tracking-modes: cookie
然后重启项目就可以了。
但如果你的项目集成了 Spring Security,那就需要重写 WebSecurityConfigurerAdapter 的 configure 方法。
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.NEVER)
.and()
.csrf().disable();
}
上面的三种做法都可以解决 url 中带 JSESSIONID 的问题。希望能够帮助到大家!
: » 手把手教你干掉 SpringBoot 项目地址栏中 URL 后面的 jsessionid
原创文章,作者:wdmbts,如若转载,请注明出处:https://blog.ytso.com/252178.html