Spring Security
文章平均质量分 82
海上生日朋
好记性不如好笔记
展开
-
Spring Security--多个过滤器链和多个用户表
可以看到,当请求到达FilterChainProxy之后,FilterChainProxy 会根据请求的路径,将请求转发到不同的Spring Security Filters 上面去,不同的Spring Security Filters 对应了不同的过滤器,也就是不同的请求将经过不同的过滤器。注意的是,规则一定要统一,一条执行链的规则,如/web/**,下面一切的接口都加/web/**,包括登录的接口。上图,我直接在内存中写了个用户,模拟不同表的用户,下面是数据库的用户登录。原创 2023-06-14 12:33:25 · 1722 阅读 · 0 评论 -
Spring Security--获取登录成功的用户信息
在用户登录成功后,自动将用户信息存入到SecurityContextHolder中。3.下一个请求来的时候,还是会经过SecurityContextPersistenceFilter 过滤器,,此时系统还是会从Httpsession 中读取出登录成功的用户信息,并将之存入SecurityContextHolder 中。2.在登录请求处理完毕后,响应数据给前端时,也会经过SecurityContextPersistenceFilter 过滤器,此时,会将用户信息存入Httpsession中。原创 2023-06-13 16:16:42 · 1372 阅读 · 0 评论 -
Spring Security--会话管理
在服务器,Spring Security维护了一个会话注册表,所有的登录上来的用户,都会注册到这个注册表中,本质上是一个map集合,map是用户对象,value保存了用户所有的会话对象,Map。如图,在这个层级还可以配置一些会话的其他策略,比如:超过了一个了怎么办,是把上一个踢掉还是怎么办,就是说这个会话策略里还有其他配置,你目前处于这个层级,是会话配置的层级。同样的,回到这一级又可以配其他策略,比如session的策略,就是在这一级。不同浏览器之间也是不同的会话。原创 2023-06-13 14:27:55 · 778 阅读 · 0 评论 -
Spring Security--自动登录
rememberMe还有一个key属性,当key设置了值的时候,即使服务端重启了也不用重新登录。分三部分:用户名:时间戳:加密字符串(根据用户名+用户密码+时间戳+key加密的字符串)因为有的接口可以支持rememberMe认证,有的接口不支持,用上图的方式做区别。我们记住登录后,关掉浏览器再打开,访问一下接口,可以访问,说明记住登录成功了。然后发送请求时加上:remember-me字段。value值可以为,ture,1,on。//禁止给url编码。//读取当前用户信息。base64解密完是。原创 2023-06-12 16:43:07 · 702 阅读 · 1 评论 -
Spring Security--密码加密
第二个matches方法:密码比对的方法,rawPassword是明文密码,encodedPassword是加密后的密码,你把这来个参数传进来,它会自动帮你比对,然后放回一个boolean值。可以设置密码的强度 4-31的数字,数字越大,密码强度越高,所需要的时间就越久 可以防止有人频繁去试密码,我们比对的时间会更长。项目的话,我们是继续写的,此时项目是已经实现了数据库的用户名,密码登录,且用的是自己的登录页面。对象,这里是把所有的加密方式都写出来了,匹配你的密码的加密方式,默认是”bcrypt“原创 2023-06-12 15:24:03 · 1521 阅读 · 0 评论 -
Spring Security--连接数据库+自定义登录页面+前后端json交互
书接上一篇,在实际的开发中,我们的账号密码不可能是这样写在配置文件中的,应该是要来自于数据库。接着上一篇的项目,我们继续,在原有的依赖的基础上新增,mysql驱动依赖和mybatis依赖。添加一条数据,在security中,你的密码默认是加密的,不加密在密码前加(noop)如果是boot2.x版本,5.x的security会出现一个。user实现UserDetails 接口,重写里面的方法。现在我们要用这个账号密码去登录,我们一步一步来操作一下。输入账号,密码登录,运行成功。然后来一个mapper,原创 2023-06-09 14:01:42 · 558 阅读 · 0 评论