gpt4 book ai didi

Spring MVC 测试(安全集成测试),JSESSIONID 不存在

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

我已经为我的 Spring Boot 应用程序创建了自定义登录表单。
在我的表单集成测试中,我想检查收到的 cookie 是否包含 JSESSIONID XSRF-TOKEN .

但是,我只收到了 XSRF-TOKEN .

这是我的测试:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest("server.port:0")
public class UserIT {

@Autowired
private WebApplicationContext context;
@Autowired
private FilterChainProxy springSecurityFilterChain;

@Value("${local.server.port}")
private Integer port;

private MockMvc mockMvc;

@Before
public void setup() {
mockMvc =
MockMvcBuilders.webAppContextSetup(context).addFilters(springSecurityFilterChain)
.build();
}

@Test
public void getUserInfoTest() throws Exception {
disableSslVerification();

MvcResult result =
mockMvc.perform(formLogin("/login").user("roy").password("spring")).andExpect(authenticated())
.andReturn();
Cookie sessionId = result.getResponse().getCookie("JSESSIONID");
Cookie token = result.getResponse().getCookie("XSRF-TOKEN");
}

安全配置:
@Override
public void configure(HttpSecurity http) throws Exception {
// @formatter:off
http
//.httpBasic()
//.and()
.headers().frameOptions().disable()
.and()
.antMatcher("/**").authorizeRequests()
.antMatchers("/actuator/health").permitAll()
.antMatchers("/actuator/**").hasAuthority(Authority.Type.ROLE_ADMIN.getName())
.antMatchers("/login**", "/index.html", "/home.html").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/login.jsp")
.usernameParameter("username")
.passwordParameter("password")
.loginProcessingUrl("/login")
.permitAll()
.and()
.logout().logoutSuccessUrl("/login.jsp").permitAll()
.and()
.csrf().csrfTokenRepository(csrfTokenRepository())
.and()
.addFilterAfter(csrfHeaderFilter(), CsrfFilter.class)
.addFilterBefore(ssoFilter(), BasicAuthenticationFilter.class);
// @formatter:on
}

请帮助我获得所需的结果。

最佳答案

您也看不到 Set-Cookie header 。对我来说,这是 MockMVC 的一大限制。有关解决方法,请参阅 Why does Spring MockMvc result not contain a cookie? .

关于Spring MVC 测试(安全集成测试),JSESSIONID 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36600817/

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