我使用的是spring security
时间: 2023-10-24 08:29:02 浏览: 140
如果你正在使用 Spring Security,可以在配置类中添加以下代码来设置 Cookie 的 `httpOnly` 属性:
```java
@Configuration
@EnableWebSecurity
public class MySecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// 省略其他配置
.and()
.headers()
.httpStrictTransportSecurity()
.includeSubDomains(true)
.maxAgeInSeconds(31536000)
.and()
.contentSecurityPolicy("default-src 'self'")
.and()
.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) // 将 Cookie 的 httpOnly 属性设置为 false
.and()
.addFilterAfter(new CustomFilter(), CsrfFilter.class);
}
}
```
上述配置中,我们通过 `CookieCsrfTokenRepository.withHttpOnlyFalse()` 方法将 `httpOnly` 属性设置为 `false`,从而使得客户端的 JavaScript 可以访问 CSRF token。如果你想将 `httpOnly` 属性设置为 `true`,只需要将该方法改为 `CookieCsrfTokenRepository.withHttpOnlyTrue()` 即可。
阅读全文