SpringSecurity中表单验证loginProcessingUrl和loginPage问题

SpringSecurity中表单验证loginProcessingUrl和loginPage问题


没问题之前状态:
之前使用SpringSecurity用户登录验证的时候
一直用的是/login请求跳转到自定义登陆页面
表单提交用的也是action=/login
而Security配置中loginPage用的也是/login,没有什么问题!

修改的过程:
而后面因为觉得跳转页面和用户验证请求url都是 /login
换成了表单用户验证用:/toLogin
Security配置loginPage换成toLogin

问题来了!!!!

改完之后,浏览器登录会出现 找不到网页或重定向次太多等等,但是有时候也不报错,就很奇怪!!
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
最后结果测试改为这样可以浏览器控制台不报错了!吼吼吼!

最后做出解释:

  • 如果只配置loginPage而不配置loginProcessingUrl的话
    那么loginProcessingUrl默认就是loginPage
  • 如果只配置loginProcessUrl,就会用不了自定义登陆页面,security会使用自带的默认登陆页面。

如果跳转页面是/login,提交表单/toLogin,那最好就是loginPage配/login
loginProcessingUrl配/toLogin

我的理解是loginPage就是登录页面的url地址
loginProcessingUrl是验证的登录url地址 如果不设则默认和loginPage一样。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在Spring Security中配置基于表的登录,通常需要以下几个步骤: 1. **配置`WebSecurityConfigurerAdapter`**:您需要扩展`WebSecurityConfigurerAdapter`类并重写其`configure(HttpSecurity http)`方法。在这个方法中,您可以定义安全策略,包括哪些URL应该被保护以及如何进行身份验证。 2. **启用表登录**:在`configure(HttpSecurity http)`方法中,使用`.formLogin()`启用表登录。这会启用默认的登录页面和登录处理机制。 3. **自定义登录页面**:如果您想要自定义登录页面,可以使用`.loginPage("/custom-login.html")`来指定自定义登录页面的URL。这样,当用户尝试访问受保护的资源时,他们将被重定向到这个自定义的登录页面。 4. **允许所有用户访问登录页面**:使用`.permitAll()`方法确保所有用户都可以访问登录页面,即使他们尚未登录。 5. **配置登录成功和失败的处理**:您可以使用`.successHandler()`和`.failureHandler()`来分别配置登录成功和失败后的处理逻辑。 6. **配置用户名和密码参数**:默认情况下,Spring Security期望从请求中获取名为`username`和`password`的参数。如果您的表使用了不同的参数名称,您需要在`configure(HttpSecurity http)`方法中使用`.usernameParameter("yourUsernameField")`和`.passwordParameter("yourPasswordField")`来指定这些参数的名称。 7. **配置登录POST请求的URL**:默认情况下,登录数据的提交地址是`/login`。如果您想要更改这个URL,可以使用`.loginProcessingUrl("/custom-login-processing-url")`来进行配置。 8. **配置退出登录**:使用`.and().logout()`启用退出登录功能,并且可以进一步配置退出登录的处理逻辑。 9. **配置记住我服务**:如果您想要提供“记住我”功能,可以使用`.rememberMe()`方法来启用它。 10. **配置异常处理**:您可以使用`.exceptionHandling()`来配置如何处理认证过程中的异常情况。 通过以上步骤,您就可以在Spring Security中配置基于表的登录了。此外,还需要确保您的应用程序中有一个接收用户名和密码的表,并且该表的`action`属性指向正确的登录处理URL。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记或往

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值