spring security 表单登录loginPage和loginProcessingUrl
配置
.authorizeRequests()
.antMatchers("/", "/index").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/testpage.html")
.defaultSuccessUrl("/testS")
.permitAll()
.and()
.logout()
.permitAll()
testpage.html
<form class="form-signin" method="post" action="/login">
<h2 class="form-signin-heading">Please sign in</h2>
<p>
<label for="username" class="sr-only">Username</label>
<input type="text" id="username" name="username" class="form-control" placeholder="Username" required="" autofocus="">
</p>
<p>
<label for="password" class="sr-only">Password</label>
<input type="password" id="password" name="password" class="form-control" placeholder="Password" required="">
</p>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>
自己对loginPage和loginProcessingUrl做了下测试:
两者都不配置:默认都是/login
两者都配置:按自己的来
只配置loginProcessingUrl:loginPage默认提供的页面
这样想着,觉得loginProcessingUrl默认应该是/login,所以
只配置loginPage,action为/login
(代码上面)
结果发现就不行了
我想问一下,loginProcessingUrl默认值是什么?自定义配置了loginPage就必须同时配置上loginProcessingUrl吗?
初涉Spring Security,希望熟知的可以解下我的疑惑,thx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
为啥我这么配置,点击自己的登陆页面提交时,提示/login/oneself这个404
loginProcessingUrl默认好像是j_spring_secutity_check
跟loginPage的区别在这里
https://stackoverflow.com/que...
好像只要保持action和HttpSecurity里配置的loginProcessingUrl一致就可以了,也不用自己去处理
先说看了Spring security源码后的结论吧~(没看文档,只是出于个人对代码和代码注释的理解得出的结论,可以自己再看看是不是这样):
如果你在重写
WebSecurityConfigurerAdapter的configure方法
时没有设置loginPage(),那么默认的访问页面就是"/login",如果你没有设置loginProcessingUrl(),那么默认的用户名密码后端校验逻辑的URL跟loginPage对应的地址一致。首先可以根据代码注释解释下两个属性分别是干嘛用的:
其次可以看看默认值:
我断点看了一下
如果只配置loginPage而不配置loginProcessingUrl的话
那么loginProcessingUrl默认就是loginPage
你配置的loginPage("/testpage.html") ,那么loginProcessingUrl就是"/testpage.html"