若依框架免密登录(仅做参考)
一、在framework模块下security包下新建config包,在包里新建CustomLoginAuthenticationProvider.java类 继承DaoAuthenticationProvider类重写additionalAuthenticationChecks 方法
public class CustomLoginAuthenticationProvider extends DaoAuthenticationProvider {public CustomLoginAuthenticationProvider(UserDetailsService userDetailsService) {super();setUserDetailsService(userDetailsService);}protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException {if (authentication.getCredentials() == null) {this.logger.debug("Authentication failed: no credentials provided");throw new BadCredentialsException(this.messages.getMessage("AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials"));} else {String presentedPassword = authentication.getCredentials().toString();if(Constants.CUSTOM_LOGIN_SMS.equals(presentedPassword)){//免密登录,不验证密码(还可以继续扩展,只要传进来的password标识即可)}else{BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();if (!passwordEncoder.matches(presentedPassword, userDetails.getPassword())) {this.logger.debug("Authentication failed: password does not match stored value");throw new BadCredentialsException(this.messages.getMessage("AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials"));}}}}
}
二、在SecurityConfig.java包里 修改身份认证方式
/*** 身份认证接口*/@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.authenticationProvider(new CustomLoginAuthenticationProvider(userDetailsService));auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder());}
三、SysPasswordService.java类下的 matches 方法 新增跳过验证方法 Constants.CUSTOM_LOGIN_SMS 同第二步一样 随意定义即可
public boolean matches(WebsiteUser user, String rawPassword){if (rawPassword.equals(Constants.CUSTOM_LOGIN_SMS)){return true;}return SecurityUtils.matchesPassword(rawPassword, user.getPassword());}
然后使用原本的登录 密码用Constants.CUSTOM_LOGIN_SMS 即可登录
若依框架免密登录(仅做参考)相关推荐
- Win10环境下配置VScode远程开发ssh-remote(免密登录)
问题背景: 在开发或者做实验的过程中,我们经常会用到远程服务器或者Github的项目,而我服务器上的项目只能在Jupyter Notebook上编写(或许可以在其他IDE上写,但我不知道).而我们喜欢 ...
- flask框架如何实现修改密码和免密登录功能
flask是python web开发的常用框架之一.本文将讲述flask如何实现修改密码和免密登录功能 修改密码功能 数据库部分: #重置密码 def reset_pass(phone,passwor ...
- CentOS7做ssh免密登录
(1)实验环境 两台CentOS7: youxi1 192.168.1.6 youxi2 192.168.1.7 这里我将防火墙关闭进行实验,如果防火墙开启,请将端口加入到防火墙规则中. (2).目标 ...
- SSH详解以及免密登录配置,深入理解
前面是理论基础,后部分是免密搭建详细步骤. Secure Shell Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,目的是在不安全的网络中为网络服务提供安全的传输环境. ...
- APP新用户注册、手机号绑定、用户登录验证新方式——一键登录(免密登录)验证方式新趋势
传统的手机APP应用注册通常需要用户输入用户名,填写用户密码,同时通过获取验证码绑定手机号.用户一旦注册后再次登录传统的方式都是提供用户名加密码,或者凭手机验证码登录.当然现在许多APP为了获取更多的 ...
- Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块
这是一篇系列博文,我将使用Abp.Zero搭建一套集成手机号免密登录验证与号码绑定功能的用户系统: Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块 Abp.Zero 手机号 ...
- 万字详解SSH(SSH登录原理+SSH配置+模拟实现SSH免密登录)
文章目录 一.SSH概述 1. 加密算法 1)对称加密算法(DES) 2)非对称加密(RSA) 3) 对称加密与非对称加密区别 4)中间人攻击 2. 环境准备 3. SSH基于用户名密码的认证原理 4 ...
- 【转】使用ssh-copy-id 快速的配置免密登录
1.在需要免密登录其他机器的主机上 生成公钥,私钥等. ssh-keygen -t rsa 回车回车回车 哪个用户登录就在哪个用户目录的.ssh目录下生成. 2.将以下命令做成脚本,因为环境不能下载, ...
- gitlab ci 自动化部署_前端gitLab加jenkins自动化构建和部署,以及服务器常用的linux命令行操作,免密登录...
常用的linux命令行操作 将项目部署到服务器后,需要查看文件是否已经部署成功,已经对文件进行增删改查操作,就需要用到命令行操作,常用操作如下: ll 罗列出当前文件或目录的详细信息,含有时间.读写权 ...
最新文章
- 做了6年的Java,java视频教程传智播客
- 漫画:什么是狭义相对论?
- Gradle善良:仅添加包装用于战争
- hadoop 入门实例【转】
- Docker : Docker使用DockerFile入门案例
- Ubuntu-18.04.1安装QQ
- fedora下编译运行java傻瓜入门级教程
- linux开机密码取消,如何取消电脑开机密码
- 实数系统的构造与发展历程
- ES6 模板字符串方法
- A novel hybrid intrusion detection method integrating anomalydetection with misuse detection
- mini-itx PC:推测Intel D525MW支持UEFI
- 微服务项目:尚融宝(42)(核心业务流程:借款额度审批(2))
- 2021-11-15
- 奥升德赢得三星SDI锂离子电池添加剂专利案;蜂巢能源完成102.8亿元人民币B轮融资;伊顿、特灵科技、芬美意发布财报 | 能动...
- docker 安装redmine
- DIV+CSS布局基本流程及实例介绍
- ip地址的作用及分类
- linux aux是什么命令,Linux命令ps aux详细解释
- 云桌面教学可以给学校老师和学生带来那些改变