![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring security
文章平均质量分 73
一个还没工作的研究僧
这个作者很懒,什么都没留下…
展开
-
微人事-spring security session与servlet里session的区别
前言上一节实现session并发的时候,注意到一个细节//注册sessionsessionRegistry.registerNewSession(request.getSession(true).getId(), principal);为什么要手动注册一个session呢,web服务器不是默认给每个独立的请求创建一个session吗?不注册的话,会怎么样?分析(1)首先先聊下web服务器里的session创建时机,当一个新的请求到来时,HttpSessionListener接口(实现的监听器)原创 2021-03-20 15:51:15 · 425 阅读 · 0 评论 -
微人事-session并发问题-踢掉已登录的用户(2)
前言上一节,了解spring security如何处理session并发。今天将在微人事项目里处理session并发问题,实现踢掉已登录的用户。分析(1)获取session集合通过sessionRegistry对象 final List<SessionInformation> sessions = sessionRegistry.getAllSessions( authentication.getPrincipal(), false); (2)通过阅读源码,sessio原创 2021-03-16 11:44:31 · 395 阅读 · 0 评论 -
微人事-session并发问题-踢掉已登录的用户(1)
前言spring security的登录逻辑是在UsernamePasswordAuthenticationFilter#attemptAuthentication方法中实现的,但是attemptAuthentication的调用者却是UsernamePasswordAuthenticationFilter的父类AbstractAuthenticationProcessingFilter间接调用的,源码如下public void doFilter(ServletRequest req, ServletR原创 2021-03-16 10:00:45 · 359 阅读 · 0 评论 -
微人事-hr对象为啥需要重写equals 方法和 hashCode 方法
前言今天实现微人事-如何踢掉已登录用户功能遇到一个问题,在查询一个用户对象所对应的session集合时,涉及到了对象的比较。集合类型: //object 指的是用户对象 Set<String> 指的是session集合 ConcurrentMap<Object, Set<String>> principalssession的获取//authentication.getPrincipal()返回的是一个对象List<SessionInformation原创 2021-03-15 13:18:36 · 120 阅读 · 0 评论 -
微人事-spring security登录认证分析
前言vhr登录认证(1)用户名+密码+验证码(2)对于用户的角色认证vhr采用了spring security做认证及授权,今天想来总结下整个登录的流程。分析上图可以先大概看下流程(1)spring Security 中有一个非常重要的对象叫做 Authentication,我们可以在任何地方注入 Authentication 进而获取到当前登录用户信息,Authentication 本身是一个接口,它有很多实现类,最常用的就是 UsernamePasswordAuthenticationTok原创 2021-03-14 17:08:04 · 409 阅读 · 0 评论 -
微人事-spring security之json形式登录
前言今天看登录逻辑代码发现一个问题,spring security前后端登录默认采用的key-value形式,但是目前github 上vhr最新代码支持json登录和key-value,那么如何实现呢?实现(1)首先明确spring security登录逻辑是在UsernamePasswordAuthenticationFilter过滤器里实现的。public Authentication attemptAuthentication(HttpServletRequest request, HttpS原创 2021-03-12 10:39:39 · 277 阅读 · 0 评论 -
Springboot实现自动登录的功能
目录:概念实现自动登录是我们在软件开发时一个非常常见的功能,例如我们登录 QQ时,登录界面会有记住密码这个功能,下次进入qq会进行自动登录。浏览器的自动登录是指用户在登录成功后,在某一段时间内,如果用户关闭了浏览器并重新打开,或者服务器重启了,都不需要用户重新登录了,用户依然可以直接访问接口数据。那么应该如何实现呢,其实spring security已经为我们提供了相应的支持。实战:(1)创建spring工程,引入web和security的依赖。pom.xml如下:<dependen原创 2020-12-03 15:51:58 · 2137 阅读 · 1 评论 -
spring security 基于数据库的认证
学习本篇文章之前一定 要具备spring security的基础,可以参考:security基础学习上篇文章我们spring security登录的用户与密码是手动进行设置的,有两种方式:一种是application.properies文件中设置,还有一种是java配置类里进行设置。但是我们在实际的项目开发里一般都会利用数据库进行权限认证,这样也有利于用户权限的动态更改。实战(1)创建web项目,引入security、web 、mysql、mybatis与druid依赖即可(druid手动进行配置)原创 2020-11-27 21:07:04 · 310 阅读 · 0 评论 -
Spring boot整合Spring security
我们一般用到的主流安全框架有两种:ShiroSpring Security 相对于 Shiro,在 SSM/SSH 中整合 Spring Security 都是比较麻烦的操作,所以,Spring Security 虽然功能比 Shiro 强大,但是使用反而没有 Shiro 多(Shiro 虽然功能没有 Spring Security 多,但是对于大部分项目而言,Shiro 也够用了)。 本文主要讲解spring security实战:(1)创建web项目,引入security和web依赖即可原创 2020-11-26 20:14:38 · 526 阅读 · 0 评论