Spring security在用户访问登录页面时创建会话



我正在制作登录页面,按照官方指南。

我想添加一个函数,使重定向到home如果用户加入。

逻辑是这样的。

  1. 包含email、密码和用户名的用户连接。
  2. 如果有认证,直接回home。

如何通过身份验证重定向到home ?

@Slf4j
@Controller
@RequiredArgsConstructor
public class LoginController {
@GetMapping("/login")
public String loginForm(@ModelAttribute LoginForm loginForm) {
return "login/loginForm";
}
}

public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
private final UserSecurityService userSecurityService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests() // 인가 요청 받기
.antMatchers("/", "/home", "/join",
"/css/**", "/*.ico", "/error").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/")
.failureUrl("/login")
.usernameParameter("email")
.permitAll()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login")
.invalidateHttpSession(true);
}

基本上,当用户成功登录时,安全性会根据SessionCreationPolicy值生成用户会话。
如果您想将会话系统更改为无状态系统。
但是遵循下面的代码。

protected void configure(HttpSecurity http) throws Exception {
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
}

,然后需要设置认证对象。

SecurityContextHolder.getContext().setAuthentication(
new UsernamePasswordAuthenticationToken("principal", "credentials", null));

相关内容

  • 没有找到相关文章

最新更新