我正在尝试使用我创建的页面进行身份验证,它是login.jsf。我在.loginPage / login.jsf
中使用2个输入和1个按钮进行身份验证。但是,通过填写登录名和密码字段,然后单击按钮,没有任何反应。与Spring Security自己的.formLogin()
本身不同,它已经通过单击按钮完成了所有处理。
我的方法
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/login.jsf").anonymous()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login.jsf")
.defaultSuccessUrl("/homepage.jsf")
.failureUrl("/login.jsf?error=true")
.and()
.logout().logoutSuccessUrl("/login.jsf");
}
有人有任何建议吗?
打印屏幕默认.formLogin()
答案 0 :(得分:0)
请查看spring安全文档中的以下文章。
引用文章,
我们提交用户名和密码的网址与我们的网址相同 登录表单(即/ login),但是POST而不是GET。
所以我相信您必须使用您的身份验证详细信息对/ login端点进行POST调用才能生效。
答案 1 :(得分:0)
在配置中指定页面时,请勿使用文件扩展名。 ViewResolver
会处理它。只需指定
.loginPage("/login").defaultSuccessUrl("/homepage")
.failureUrl("/login?error=true")
.and()
.logout().logoutSuccessUrl("/login");`
并确保将ViewResolver配置为将.jsf
附加到网址。 DispatcherServlet将负责查找适当的页面。
另外,更不用说,你应该让控制器定义适当的@RequestMapping
来处理你的请求。