【发布时间】:2017-09-25 02:51:22
【问题描述】:
当用户注册时,我也尝试在同一步骤中对他们进行身份验证。我在网上四处查看,这似乎是这样做的方式:
UserDetails userDetails userDetailsService.loadUserByUsername(username);
// Set authenticated
Authentication auth = new UsernamePasswordAuthenticationToken(userDetails, password, userDetails.getAuthorities());
authenticationManager.authenticate(auth);
if (auth.isAuthenticated()){
// This is hit every time, seemingly signaling
// that authentication is happening
SecurityContextHolder.getContext().setAuthentication(auth);
}
但是,这并没有设置 JSESSIONID cookie,因此当用户第一次尝试访问受保护的资源时,他们必须再次登录。关于如何解决这个问题的任何想法?我正在使用 Spring Security 的 4.0.1.RELEASE 版本。
我还在我的配置中设置了以下内容,但我不确定它是否相关:
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED);
http.sessionManagement().maximumSessions(1);
http.sessionManagement().sessionFixation().migrateSession();
【问题讨论】:
标签: java spring spring-security