gpt4 book ai didi

spring - 在spring或spring security中配置cookie头的Domain属性

转载 作者:行者123 更新时间:2023-12-04 10:24:39 26 4
gpt4 key购买 nike

如何使用 spring security java 配置配置 cookie 的域属性。我需要将 cookie 的访问权限限制在一个特定的子域中,例如

Domain=.test.example.com;

现在我知道有一个 xml 配置看起来像下面的示例,但是我不再在我的应用程序中添加任何 web.xml,我希望我的所有配置都通过 java 进行。

<session-config>
<session-timeout>400</session-timeout>
<cookie-config>
<name>KSESSION</name>
<path>/</path>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>

在我扩展 WebSecurityConfigurerAdapter 的 SecurityConfig 类中,我正在搜索一些 session 配置对象或参数,但找不到,即我只有 sessionManagement 对象。

    .sessionManagement()
.enableSessionUrlRewriting(false)

.sessionAuthenticationStrategy(sessionControlStrategy())
.sessionCreationPolicy(SessionCreationPolicy.ALWAYS)
.sessionFixation().newSession()

.maximumSessions(1)
.maxSessionsPreventsLogin(true)
.expiredUrl("/login?expired")

也许这是通过 TomcatContextCustomizer bean 完成的,即我在那里找到参数 setUseHttpOnly 和路径参数,但在域属性上没有 setter 。

@Bean 
public TomcatContextCustomizer tomcatContextCustomizer() {
System.out.println("TOMCATCONTEXTCUSTOMIZER INITILIZED");
return new TomcatContextCustomizer() {

@Override
public void customize(Context context) {
// TODO Auto-generated method stub
context.addServletContainerInitializer(new WsSci(), null);
context.setUseHttpOnly(true);
context.setPath("/testBlaBlaPage");



}
};

所以基本上我的目标是有一个像这样的 http header

Set-Cookie: JSESSIONCookie: JSESSIONID=DEAC4422AB4E28A7062C08724C8BCFAA; Path=/login; Secure; Domain=.test.example.com; HttpOnly.

目前看来

Set-Cookie: JSESSIONCookie: JSESSIONID=DEAC4422AB4E28A7062C08724C8BCFAA; Path=/; Secure; HttpOnly

最佳答案

好的,我找到了问题的答案,即它是 tomcat 上下文下的方法 setSessionCookieDomain()。即类似

context.setSessionCookieDomain(".test.example.com");

关于spring - 在spring或spring security中配置cookie头的Domain属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27138422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com