Spring Security没有设置JSESSIONID Cookie

时间:2016-12-05 05:12:03

标签: java spring spring-security

当用户注册时,我也尝试在同一步骤中对它们进行身份验证。我在网上看了看,这似乎就是这样做的方式:

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();

1 个答案:

答案 0 :(得分:0)

事实证明我的服务器已经腐败了。它也随机拒绝api调用,所以我重新安装了服务器,现在一切正常。