Java Spring应用程序
_spring-security
__WebSecurityConfigurerAdapter
(自定义登录页面)
用户已登录并尝试进入登录页面
如何在扩展WebSecurityConfigurerAdapter类和控制器中进行管理?
我查看了包括自定义处理程序在内的几个代码,但似乎无法理解。
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin").hasRole("ADMIN")
.antMatchers("/login*").permitAll()
.antMatchers("/admin*").denyAll()
.and()
.csrf()
.disable()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/admin")
.failureUrl("/login?error=true")
.and()
.logout().logoutSuccessUrl("/login?logout=true");
http.headers().frameOptions().disable();
}
预期:将用户重定向到特定的网址
实际:用户进入页面并具有登录表单
我知道XML解决方案和文档,但是没有找到必要的信息来理解此处必须做的事情。任何帮助将不胜感激。
答案 0 :(得分:1)
https://bach.mystories.vn/2018/06/12/redirect-logged-in-users-when-accessing-login-page/
3小时的搜索,我在发布问题后终于得到了必要的简单信息,所以我自己也可以回答:
@Controller
public class MainController {
@GetMapping("/register")
public String register(Model model,Principal principal) {
if(principal!=null){
return "redirect:/";
}
else{
UserRegistrationDTO userRegistrationDTO = new UserRegistrationDTO();
model.addAttribute(userRegistrationDTO);
return "userregistration";
}
}
}
通过函数内部的重定向将主要参数添加到控制器即可完成工作