【已解决】SpringBoot整合security账号密码正确却提示错误

这篇具有很好参考价值的文章主要介绍了【已解决】SpringBoot整合security账号密码正确却提示错误。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【已解决】SpringBoot整合security账号密码正确却提示错误

一:引言

SpringSecurity的密码校验并不是直接使用原文进行比较,而是使用加密算法将密码进行加密(更准确地说应该进行Hash处理,此过程是不可逆的,无法解密),最后将用户提供的密码以同样的方式加密后与密文进行比较。对于我们来说,用户提供的密码属于隐私信息,直接明文存储并不好,而且如果数据库内容被窃取,那么所有用户的密码将全部泄露,这是我们不希望看到的结果,我们需要一种既能隐藏用户密码也能完成认证的机制,而Hash处理就是一种很好的解决方案,通过将用户的密码进行Hash值计算,计算出来的结果无法还原为原文,如果需要验证是否与此密码一致,那么需要以同样的方式加密再比较两个Hash值是否一致,这样就很好的保证了用户密码的安全性。
【已解决】SpringBoot整合security账号密码正确却提示错误
我们这里使用的是SpringSecurity提供的BCryptPasswordEncoder,至于加密过程,这里不做深入讲解。

现在,我们可以尝试使用此账号登录,在登录后,就可以随意访问我们的网站内容了。

二:使用数据库认证

前面我们已经实现了直接认证的方式,那么如何将其连接到数据库,通过查询数据库中的内容来进行用户登录呢?

首先我们需要将加密后的密码添加到数据库中作为用户密码:

public class MainTest {

    @Test
    public void test(){
        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
        System.out.println(encoder.encode("123456"));
    }
}

三:错误原因:

我们的SpringSecurity的密码校验并不是直接使用原文进行比较,而是使用加密算法将密码进行加密(更准确地说应该进行Hash处理,此过程是不可逆的,无法解密),最后将用户提供的密码以同样的方式加密后与密文进行比较。
简而言之:我们验证的密码是比较该密码加密后和数据库存储密文是否一样。

解决方法

将密码进行加密后,存储到数据库,比如123456,加密后成字符串,存入数据库,之后再进行身份验证的时候,直接密码直接输入123456即可文章来源地址https://www.toymoban.com/news/detail-510169.html

MD5解密网址:点我跳转

到了这里,关于【已解决】SpringBoot整合security账号密码正确却提示错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker登录MySQL,密码正确却提示密码错误

     当我输入了正确的MySQL密码的时候确提示我密码错误: 这是由于之前的挂载点的数据没有删除干净,删除掉宿主机下的mysql_master文件即可

    2024年01月22日
    浏览(72)
  • 向gitee仓库push的时候第一次账号密码输入不正确时,如何重新push

    向gitee仓库push的时候第一次账号密码输入不正确时,再次push会出现如下错误,因为系统记住了我们的错误密码,我们需要把错误账号密码删除,重新执行命令,步骤如下图。 1.在设置中搜索 控制面板 并打开 2.打开 用户账户 3.点击 管理Windows凭据 4.找到保存在电脑中的git的账

    2024年02月11日
    浏览(88)
  • Python输入账号密码判断是否正确并输出,典型案例-百钱买百鸡的两个程序代码

    目录 前 一、输入账号密码判断是否正确并输出 1.实现的功能 2.代码程序 3.运行截图 二、典型案例-百钱买百鸡 1.实现的功能 2.代码程序 3.运行截图 1.因多重原因,本博文由两个程序代码部分组成,如果想使用快速查找, 建议浏览目录检索; 2.本代码为Python语言,我使用的是

    2024年02月04日
    浏览(57)
  • git pull/push时免设置提示输入账号密码方法

    1、先cd到根目录,执行git config --global credential.helper store命令 2、执行之后会在家目录的.gitconfig文件中增加如下配置 3、之后cd到项目目录,执行git pull命令,会提示输入账号密码。输完这一次以后就不再需要,并且会在 根目录 生成一个.git-credentials文件 4、之后pull/push代码都不

    2024年01月18日
    浏览(51)
  • spring security - 快速整合 springboot

    2024年02月10日
    浏览(45)
  • Spring Security入门教程,springboot整合Spring Security

    Spring Security是Spring官方推荐的认证、授权框架,功能相比Apache Shiro功能更丰富也更强大,但是使用起来更麻烦。 如果使用过Apache Shiro,学习Spring Security会比较简单一点,两种框架有很多相似的地方。 目录 一、准备工作 创建springboot项目 pom.xml application.yml 二、创建相关的类

    2024年02月05日
    浏览(50)
  • 输入正确但提示ssh服务器拒绝了该密码

    通过mobaxterm输入正确密码但无法登录情况 以及Xshell显示拒绝了该密码     若出现能够ping通,且sshd服务正常运行,防火墙,selinux设置无误但无法访问的情况则需要检查该配置文件并查看以下参数(大小写无误) sshd 配置文件为/etc/ssh/sshd_config AllowUsers AllowGroups DenyUsers DenyGro

    2024年02月15日
    浏览(47)
  • SpringSecurity框架快速搭建(SpringBoot整合Security)

    目录 Common类 Config类 CorsConfig(解决跨域问题) RedisConfig (Redis数据库配置) Spring Security (配置安全功能的类) expression类(Expression 类通常用于权限控制和安全策略的定义) SGExpressionRoot(判断用户是否具有某个权限) Filter类 JwtAuthenticationTokenFilter(解析token看是否放行) Handler类

    2024年02月09日
    浏览(44)
  • SpringBoot整合Spring Security实现权限控制

    要对Web资源进行保护,最好的办法莫过于Filter 要想对方法调用进行保护,最好的办法莫过于AOP。 Spring Security进行认证和鉴权的时候,就是利用的一系列的Filter来进行拦截的。 如图所示,一个请求想要访问到API就会从左到右经过蓝线框里的过滤器,其中 绿色部分是负责认证的

    2024年02月15日
    浏览(38)
  • 微信小程序激活账号时,提示“此帐号已激活,请使用帐号密码直接登录”

    最近准备研究下微信小程序,先去申请个小程序账号。于是乎,在通过邮件中的链接激活账号时,遇到了这个问题。 你没看错,就是字面的意思, 去登录页,点击使用账号登录 , 千万不要扫码登录 。 用之前注册的邮箱和密码登录,登录后就可以继续完成信息登记了! 在未

    2024年02月11日
    浏览(168)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包