【springSecurity6】用户名密码登陆校验,后台只能收到用户名字段,收不到密码pwd字段

阿里云搭建vps服务器的过程 最近突发奇想想要搭建一个阿里云的的vps服务器,下面是搭建的过程: 首先,登录阿里云网站: 搜索,esc控制台: 点击创建实例: 选择地区: 选择实例规格: 选择镜像: 将存储规格改成100G(40G可能不够用) 点击下一步: 这里面不需要更改,点击下一步 设置连接密码即可 创建成功后点击启动 点击远程连接,然后立即登录,在弹出的框里面输入之前设置的密码即可 登录成功: 阅读详情

项目场景:

想要实现 前台输入用户名密码,后台进行认证,然后登陆成功跳转功能

前提:用户名字段username,密码是pwd(问题就在这,跟往常password不同)

问题:前台输入用户名和密码之后,后台只能接收到用户名,接收不到前台输入的密码(pwd)字段

血泪教训:取名尽量还是要规范,不然会导致框架识别不到这个字段的值


问题描述

前台输入用户名和密码之后,后台只能接收到用户名,接收不到前台输入的密码(pwd)字段
在这里插入图片描述
在这里插入图片描述
可以看到,前台肯定是已经传入了参数,但是后台就是识别不到。


原因分析:

应该是speingsecurity默认识别的密码,是按照password来识别的,所以识别不到。需要通过springsecurityConfig里面的配置进行修改,覆盖默认的字段名

下面是没设置时候的代码:

    public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
        //首页所有人都可以访问,功能页只有有权限的人才能访问
        httpSecurity
                .authorizeHttpRequests((requests) -> requests
                                .requestMatchers("/","/index").permitAll()
                                .requestMatchers("/toLogin","/toLoginPage").permitAll()
                                .requestMatchers("/level1/**","/level2/**","/level3/**").hasRole("root")
                                .requestMatchers("/level2/**").hasRole("admin")
                                //对静态资源的过滤
                                .requestMatchers("/css/**","/js/**","/views/**").permitAll()
                                .requestMatchers("/views/login.html").permitAll()
                                .anyRequest().authenticated()
                        //没有权限默认回到登陆页面,也可以不传参数,默认是login.html页面
                ).formLogin(form -> form.loginPage("/toLoginPage")
                //处理前端跳转页面,要跟form表单里的action相同
                        .loginProcessingUrl("/toLogin")
                .csrf(csrf -> csrf.disable());
        return httpSecurity.build();
    }

在这里插入图片描述

可以看到,在FormLoginConfigurer.java里面,默认接收密码的参数是passwordParameter


解决方案:

通过.passwordParameter(“pwd”)通过这个指定了密码对应的参数是pwd,完成设置之后就可以看到,接收到参数了

    public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
        //首页所有人都可以访问,功能页只有有权限的人才能访问
        httpSecurity
                .authorizeHttpRequests((requests) -> requests
                                .requestMatchers("/","/index").permitAll()
                                .requestMatchers("/toLogin","/toLoginPage").permitAll()
                                .requestMatchers("/level1/**","/level2/**","/level3/**").hasRole("root")
                                .requestMatchers("/level2/**").hasRole("admin")
                                //对静态资源的过滤
                                .requestMatchers("/css/**","/js/**","/views/**").permitAll()
                                .requestMatchers("/views/login.html").permitAll()
                                .anyRequest().authenticated()
                        //没有权限默认回到登陆页面,也可以不传参数,默认是login.html页面
                ).formLogin(form -> form.loginPage("/toLoginPage")
                //处理前端跳转页面,要跟form表单里的action相同
                        .loginProcessingUrl("/toLogin")
                        .passwordParameter("pwd")
                        .usernameParameter("username"))
                .csrf(csrf -> csrf.disable());
        return httpSecurity.build();
    }
ESP32语音交互实战:离线唤醒与DeepSeek大模型集成 本文详细介绍了如何将ESP32-S3开发板与天问ASRPRO语音模块结合,实现离线语音唤醒并集成DeepSeek大模型的智能交互系统。通过串口通信与API调用,系统可处理本地指令及复杂语义请求,适用于低成本、高隐私保护的AIoT语音交互场景。 阅读详情

相关推荐

把财务与管理会计装进一张表:读懂 S/4HANA 的 ACDOCA

别慌,这反而是设计所需。只是大量历史上为汇总、加速而建的索引与汇总表被淘汰或改造,很多被兼容视图 compatibility views 替代,通过视图去 ACDOCA 或 ACDOCT 取数,从而保证老代码还能 SELECT 到数据,但失去写权限。它把原来分散在多张表里的信息整合到一起,例如总账、固定资产、物料账、盈利能力分析 CO-PA、成本控制等维度,发布过的资料多次强调这一点。其二,查询必须带上高选择性的条件,尤其是 RLDNR、RBUKRS、GJAHR 这三个维度,能大幅降低列存扫描的代价。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 810

SpringSecurity】二、密码处理与获取当前登录用户

Component@Override@Autowired以上暴露了Authentication认证对象,且隐藏静态访问代码,让业务解耦并方便测试。

llg___的博客 1788

爱普生WF2750清零软件.exe

爱普生WF2750清零软件,亲测有效

SpringSecurity用户名密码登录

开始进行实际的Security的代码编写。 Security官方文档 过滤器链: 目前已有的,后面再加也是加在绿色的过滤器链位置。 建表(用户表,用于登录) CREATE TABLE `account` ( `id` varchar(32) NOT NULL COMMENT '主键,UUID编码', `user_name` varchar(11) DEFAULT NULL COMMENT...

single_cong的博客 2562

SpringSecurity 登录用户数据获取

登录成功后,在后续的业务逻辑汇总,可能还需要获取登录成功的用户对象,如果不使用任何安全管理框架,那么可以将用户信息保存在HttpSession中,以后需要的时候直接从HttpSession中获取数据。SecurityContextHolder 是一个静态方法,意味着我们随时随地都可以获取到登录用户信息,在service层也可以获取到登录用户信息。启动项目,登录成功后,访问/user接口,控制台就会打印出登录用户信息,当然,由于我们目前没有给用户配置角色,所以默认的用户角色为空数组。

你今天真好看呀 2325

spring security 密码校验——用户输入密码和数据库密码

先检查数据库存的密码是否是在securityConfig配置类里注入的加密方法,加密后的结果。在控制台进行打印的结果,存到数据库中,就可以了。eg:用security自带的BC加密。,绝大概率就是这里的问题。

qq_45947664的博客 1509

Spring Secuirty 密码加密认证讲解

spring Securiy 密码加密 深度讲解

weixin_52834606的博客 3963

普歌 - SpringSecurity入门(3)

配置自定义登录页面和基于内存存储认证信息一.自定义登录页面1.修改安全配置类2.放行静态资源3.测试二.基于内存存储认证信息1.修改安全配置类2.修改密码认证方式3.测试喜欢的小伙伴可以点赞、关注、收藏哦 -- 技术源于追求,技术改变生活 -- 提示:本次认证才用自定义页面和HttpBasic认证方式,密码加密方式为BCryptPasswordEncoder-- 明文加随机盐值 一.自定义登录页面 1.修改安全配置类 /** * configure(HttpSecurity http) 资源权

普歌-李建威 162

SpringSecurity用户密码验证过程

SpringSecurity过滤链当中的UsernamePasswordAuthenticationFilter负责登陆密码验证 AbstractAuthenticationProcessingFilter是UsernamePasswordAuthenticationFilter的父接口,接口当中就有一个this.getAuthenticationManager()方法,获取AuthenticationManager对象。 AuthenticationManager对象当中有一个方法:Authentica

caijibaindashen的博客 5409

spring-security获取用户信息

spring-security获取用户信息

wdcuww的博客 544

SpringSecurit盐值加密的密码验证方式,以及强密码验证

【代码】SpringSecurit盐值加密的密码验证方式,以及强密码验证。

思祺班Java 598

基于Spring Security密码进行加密和校验

上述代码中,返回的UserDetails或者是User都是框架提供的类,我们在项目开发的过程中,很多需求都是我们自定义的属性,我们需要扩展该怎么办?/***/@Data//固定不可更改//固定不可更改//扩展属性 昵称//角色列表@Override//把角色类型转换并放入对应的集合@Override@Override@Override@Override/***/@Component@Autowired@Override。

susjj663的博客 2718

SpringSecurity 用户名密码校验过程及自定义密码验证

1、源码执行过程 1.执行 AuthenticationManager 认证方法 authenticate(UsernamePasswordAuthenticationToken) 2.ProviderManager 实现了 authenticate(UsernamePasswordAuthenticationToken) 3.ProviderManager 是通过自身管理的n个AuthenticationProvider认证提供者去进行认证 4.AuthenticationProvider认证提供

z69183787的专栏 2万+

springSecurity2的自定义账号密码认证流程+多个参数的自定义流程

本文包含了,两个参数的登录校验+多个参数的登录校验

m0_56356631的博客 4864

SpringSecurity自定义密码验证规则

1.创建MyAuthenticationProvider类,自定义密码验证规则 import com.yl.entity.User; import com.yl.security.AccountUser; import com.yl.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.A

qq_40068304的博客 5469

Spring Security用户名/密码认证

通常,Spring Security会在内部构建一个由DaoAuthenticationProvider组成的AuthenticationManager,用于处理用户名/密码身份验证。在某些情况下,可能仍然希望自定义Spring Security使用的AuthenticationManager实例。例如,您可能需要简单地禁用对缓存用户的凭据擦除。推荐的做法是简单地发布您自己的AuthenticationManager bean,Spring Security会使用它。

568

SpringSecurity系列学习(二):密码验证

版权声明:本文由神州数码云基地团队整理撰写,若转载请注明出处。密码存储安全进化史这一节我们还是积累一些知识,迫不及待想编码的小伙伴再忍忍,打好基础才能避免一些坑,一步一脚印。 最开始的时候,密码是明文存储的。黑客只需要攻破你的数据库,就能拿到所有的账号与密码了 为了防止密码泄露,后来在存储密码的时候对密码进行了哈希加密,这种加密是不可逆的。这样黑客即使攻破数据库拿到了账号和密码保存的记录,也不能获得真正的密码,因为存储在数据库里的密码是经过哈希加密算法之后的数据。 黑客为了解决这种情况,使用了彩虹表:预先将

在数字化道路无限探索 5448

关于spring security的简单使用—自定义账号密码校验

下图所展示的是SpringSecurity的默认的认证流程。Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息。AuthenticationManager接口:定义了认证Authentication的方法UserDetailsService接口:加载用户特定数据的核心接口。里面定义了一个根据用户名查询用户信息的 方法。UserDetails接口:提供核心用户信息。

m0_71144252的博客 2535

Spring Security的BCryptPasswordEncoder验证

BCryptPasswordEncoder 是 Spring Security 提供的一种密码编码器,用于对密码进行加密和验证。它基于 bcrypt 哈希算法,是一种安全的密码存储方案,能够有效地防止密码泄露和暴力破解攻击。补充一个matches方法。

tellmewhoisi的博客 463

Spring Security 6 密码验证流程

数据库中保存的不是明文,而是加密编码之后的hash 值,用户输入密码,进行相同的处理,最终比较的是hash 值是否一致。

weixin_52019286的博客 1022

spring security 密码校验

使用security默认的加密方式——BCrypt方法,对于同一个字符串,进行加密,每一次的结果都不同。但是不同的结果与原加密来的字符串进行matches时,都能得到true。1、先通过getPasswordEncoder()拿到注入容器的passwordEncoder。但加密后的结果再matches就是false了。2、再到matches()方法。3、最后是checkpw()

qq_45947664的博客 1221
上一篇: 【springsecurity6】认证源码分析
下一篇: 【springsecurity6】出现了重定向次数过多
hfssss
博客等级 码龄7年 104粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值