我需要一些特殊设置才能使用 "Automatic Session Alias Inclusion" 吗?

Do I need some special setting to use "Automatic Session Alias Inclusion"?

目前我正在尝试制作使用 spring 会话的简单应用程序(在 spring 启动时具有 spring 安全性)

它几乎可以正常工作。 但我卡在了一点

spring 会话指南说 "Spring Session will automatically include the session alias in any URL"

但在我的 jsp 中,它不起作用。

所以我必须手写包含别名的代码

<c:url value="/index" var="indexUrl" >
    <c:if test="${param._s != null }">
        <c:param name="_s" value="${param._s}" />
    </c:if> 
</c:url>
<a id="indexLink" href="${indexUrl}">To Index</a>

在我的 IDE(spring 工具套件)中,multi users sample code 与指南一样工作良好,我在我的应用程序中使用相同版本的 jstl

嗯...也许我需要写更多关于我的问题的信息

抱歉,我猜不出是哪个组件影响了这个问题 可能是 spring session 或 boot

的部分功能

任何人都可以告诉我哪个组件阻塞 "Automatic Session Alias Inclusion" 或者需要一些设置才能使用?

这是 Spring 安全和 Spring 会话之间的冲突。 Spring 安全性正在阻止对 URL 进行编码,以防止 JSESSIONID 意外暴露。要允许编码,您可以使用:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .sessionManagement()
                .enableSessionUrlRewriting(true)
                .and()
            // ...
    }
}