首页 > 其他分享 >密码加密存储 登陆接口

密码加密存储 登陆接口

时间:2023-04-23 16:22:43浏览次数:35  
标签:存储 加密 用户 接口 SpringSecurity 密码 PasswordEncoder id

实际项目中我们不会把密码明文存储在数据库中。

​ 默认使用的PasswordEncoder要求数据库中的密码格式为:{id}password 。它会根据id去判断密码的加密方式。但是我们一般不会采用这种方式。所以就需要替换PasswordEncoder。

​ 我们一般使用SpringSecurity为我们提供的BCryptPasswordEncoder。

​ 我们只需要使用把BCryptPasswordEncoder对象注入Spring容器中,SpringSecurity就会使用该PasswordEncoder来进行密码校验。

​ 我们可以定义一个SpringSecurity的配置类,SpringSecurity要求这个配置类要继承WebSecurityConfigurerAdapter。

 接下我们需要自定义登陆接口,然后让SpringSecurity对这个接口放行,让用户访问这个接口的时候不用登录也能访问。

​ 在接口中我们通过AuthenticationManager的authenticate方法来进行用户认证,所以需要在SecurityConfig中配置把AuthenticationManager注入容器。

​ 认证成功的话要生成一个jwt,放入响应中返回。并且为了让用户下回请求时能通过jwt识别出具体的是哪个用户,我们需要把用户信息存入redis,可以把用户id作为key。

 

 

 

标签:存储,加密,用户,接口,SpringSecurity,密码,PasswordEncoder,id
From: https://www.cnblogs.com/NanFangDaGua/p/17346850.html

相关文章

  • 阿里云1+X云计算开发与运维实战——云存储访问的授权管理
    实验概述    现代企业中,不同的岗位拥有不同的权限。比如会计对能够查看、修改公司的账务;人事可以调动、编写公司员工的个人档案;总经理管理公司的所有事务......在网络应用中考虑到安全和管理方面的需求,我们也会为用户授予相应的权限,管理网络资产。           ......
  • Java MD5与RSA加密使用
    JavaMD5与RSA加密使用转发数据到广州,那边要求HTTP请求的头部需要用MD5签名,请求体数据需要使用RSA加密,研究了一下。MD5MD5(MessageDigestAlgorithm5)是一种广泛使用的加密哈希函数,可将任意长度的消息转换为128位的哈希值(通常以32个十六进制字符表示)。MD5算法是一种单......
  • MDK5—stm32程序的组成、存储与运行
     MDK编译完成后,程序显示由Code、RO-data、RW-data、ZI-Data段组成(栈空间(Stack)及堆空间(Heap))。1、Code:代码域,它指的是编译器生成的机器指令,这些内容被存储在ROM区;RO-data:ReadOnlydata,只读数据域,它指程序中用到的只读数据,这些数据被存储在ROM区,因而程序不能修改其内容。例......
  • 业务接口造数据(httpclient)
    导入httpclientjar包创建maven工程 httpclient发送get请求packagecom.testing91;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importorg.apache.http.client.ClientProtocolException;importorg.apache.http.client......
  • python 操作阿里云oss 对象存储上传下载文件
    python操作阿里云对象存储oss阿里云账号要有操作oss权限安装OSSSDKpipinstalloss2上传文件#-*-coding:utf-8-*-importoss2importos#阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控......
  • HashSet以及TreeSet实现了哪些接口?有什么作用?
    HashSet简介HashSet是Java集合框架中非常常用的一种无序、不可重复的集合。它是通过哈希表来实现的,可以快速检索元素并消除重复。泛型的作用泛型可以帮助我们在编译时就发现类型错误,从而减少了运行时错误的发生。在使用HashSet时,我们通常会指定它的泛型类型为某个具体的类或接......
  • rails的接口查询详解
    RetrievingObjectsfromtheDatabasefind"find"是一种常用的数据库查询方法,在Rails中被用于从数据库中查找单个记录。它可以接收一个主键作为参数,也可以接收一组条件参数。以下是"find"方法的使用方式:#使用主键查找单个记录Model.find(1)#使用条件参数查找单个记录Mod......
  • web3 产品介绍: walletconnect 连接Web3 DApps与用户的移动加密钱包
    WalletConnect是一种去中心化的开源协议,旨在连接Web3DApps与用户的移动加密钱包,提供更安全、更便捷的加密货币交易体验。在本文中,我们将介绍WalletConnect的主要特点、工作原理以及如何使用它来连接DApps和移动钱包。一、WalletConnect的特点去中心化:WalletConnect不依赖于任......
  • Docker_存储卷-挂载
    Docker存储卷volumeDocker-managedvolume(docker管理卷)Bindmountvolume(绑定挂载卷)挂载Docker提供了3种方法将数据从Docker宿主机挂载(mount)到容器:volumes,Volumes由Docker管理,存储在宿主机的某个地方(在linux上是/var/lib/docker/volumes/ 受控存储bi......
  • 容易忽视的细节:Log4j 配置导致的零点接口严重超时
    作者:vivo互联网服务器团队-JiangYe本文详细的记录了一次0点接口严重超时的问题排查经历。本文以作者自身视角极具代入感的描绘了从问题定位到具体的问题排查过程,并通过根因分析并最终解决问题。整个过程需要清晰的问题排查思路和丰富的问题处理经验,也离不开公司强大的调用链......