SpringSecurity的最基本的使用(没有深入的查看源码)

security依赖导入

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-security</artifactId>

</dependency>

当你导入依赖什么都不做,直接运行程序,这时你访问任何一个URL,都会弹出一个“需要授权”的验证框,如图:

spring security 会默认使用一个用户名为:user 的用户,密码就是 启动的时候生成的(通过控制台console中查看)

springsecurity最主要流程分为三步,认证、授权、鉴权,其中security主要使用四大接口

UserDetailsService、AccessDecisionManager、FilterInvocationSecurityMetadataSource、WebSecurityConfigurerAdapter,

1、UserDetailsService中包含一个loadUserByUsername方法,此方法用于接收登录账号,从数据库查询出此用户信息(角色、密码等),用于后面的使用,这也是security的验证

2、FilterInvocationSecurityMetadataSource用于拦截所有的请求,当收到一个请求时,从数据库查询出能访问这个请求的角色,返回给security框架

3、AccessDecisionManager此接口用于放行和拦截请求,继承此接口重写decide,supports方法

3.1、decide用于决定用户是否有权访问此路径,(个人通俗理解,return代表通过)其中的业务逻辑根据需求自己判断

4、WebSecurityConfigurerAdapter是security的总配置,重写config方法进行相对应的操作

4.1、这里我们采用的认证是jwt认证,所以当你自定义过滤器的时候需要把自定义的过滤器也添加到配置中

这个config的配置是比较复杂的具体我也不是很了解,借网上资料(只有一部分简单的方法使用)

5、spring security的一些方法的使用

5.1、SessionCreationPolicy.STATELESS无状态的Session机制(即Spring不使用HTTPSession),对于所有的请求都做权限校验,这样Spring Security的拦截器会判断所有请求的Header上有没有”X-Auth-Token”。对于异常情况(即当Spring Security发现没有),Spring会启用一个认证入口:new RestAuthenticationEntryPoint,在我们这个场景下,这个入口只是简单的返回一个401即可:

5.2、还可以配置登录失败的处理和成功的处理

5.3、authorizeRequests()用来授权使用,如果需要添加url过滤器,前面都需要添加此方法

6、spring提供FilterRegistrationBean,此类提供对filter排序处理,可以为filter设置排序值,

让spring在注册web filter之前排序后再依次注册,实现spring的跨域请求

6.1、此类提供setOrder方法,可以为filter设置排序值,让spring在注册web filter之前排序后再依次注册。order越小越先执行

config.addAllowedOrigin("http://localhost")此方法用来设置访问源地址, “*”代表全部。”**”代表适配所有接口。

其中addAllowedOrigin(String origin)方法是追加访问源地址。如果不使用”*”(即允许全部访问源),则可以配置多条访问源来做控制。

config.addAllowedHeader("*") 设置访问源请求头 ,

config.addAllowedMethod("*")设置访问源请求方法,

source.registerCorsConfiguration("/**",config)对接口配置跨域设置

spring-security+jwt认证相关推荐

  1. 超实用,Spring Security+JWT+Vue实现一个前后端分离无状态认证Demo

    作者: 陕西颜值扛把子 https://zhuanlan.zhihu.com/p/95560389 精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 ...

  2. spring boot +spring security + jwt 实现认证模块

    我在使用spring进行开发时,通常是使用 aop+jwt 模式来对调用者身份进行确认.前几天接触到一个开源商城源码(github地址)里面使用spring security +jwt 来进行权限的验 ...

  3. spring security+jwt 登录认证

    spring security+jwt 登录认证 1.综述 2.版本与环境 3.架构 4.数据库认证逻辑图 5.案例 security+jwt 5.1引入依赖 5.2新建工具类 5.2新建组件类 5. ...

  4. Springboot Spring Security +Jwt+redis+mybatisPlus 动态完成 前后端分离认证授权

    Springboot Spring Security +Jwt 动态完成 前后端分离认证授权 文章目录 Springboot Spring Security +Jwt 动态完成 前后端分离认证授权 前 ...

  5. springboot jwt token前后端分离_基于Spring Boot+Spring Security+JWT+Vue前后端分离的开源项目...

    一.前言 最近整合Spring Boot+Spring Security+JWT+Vue 完成了一套前后端分离的基础项目,这里把它开源出来分享给有需要的小伙伴们 功能很简单,单点登录,前后端动态权限配 ...

  6. Spring boot 整合Spring Security Jwt

    记录学习Spring boot 整合Spring Security Jwt 学习参考 – 慢慢的干货 https://shimo.im/docs/OnZDwoxFFL8bnP1c/read 首先创建S ...

  7. Spring Boot + Spring Security + JWT + 微信小程序登录

    Spring Boot + Spring Security + JWT + 微信小程序登录整合教程 参考文章 文章目录 整合思想 整合步骤 1. AuthenticationToken 2. Auth ...

  8. Spring Security + JWT实现权限管理

    1 写在之前 本博客主要使用Spring Boot 整合Spring Security + JWT实现权限管理,利用JWT工具生成token,返回给登录接口.在访问其他接口时,采用Bearer Tok ...

  9. springBoot整合spring security+JWT实现单点登录与权限管理前后端分离

    在前一篇文章当中,我们介绍了springBoot整合spring security单体应用版,在这篇文章当中,我将介绍springBoot整合spring secury+JWT实现单点登录与权限管理. ...

  10. springBoot整合spring security+JWT实现单点登录与权限管理前后端分离--筑基中期

    写在前面 在前一篇文章当中,我们介绍了springBoot整合spring security单体应用版,在这篇文章当中,我将介绍springBoot整合spring secury+JWT实现单点登录与 ...

最新文章

  1. 【内网福音】如何离线部署Rancher
  2. 【Python基础】Pandas三种实现数据透视表的方法
  3. mysql_根据身份证号识别性别、年龄、所在省份
  4. 深入探讨SDN拓扑发现机制:新的攻击及实践对策【SDN拓扑】(上)
  5. ios 模拟器沙盒_iOS模拟器的路径-打开沙盒路径
  6. GBDT算法之流失预警模型
  7. python绘制饼图双层_如何在python中绘制双变量数据的饼图?
  8. Mac 10.12安装数据库管理工具MySQL Workbench
  9. 怎么捡自己空投_绝地求生:如何用纸皮自制空投?只需2个道具即可完成,附带教程...
  10. 传统数据库在分布式领域的探索
  11. 69篇关于微博的研究论文和报告
  12. socks5 转换为 http 代理(使用privoxy)
  13. dell系统重装后无法进入系统_戴尔系统重装进入bios设置方法
  14. MySQL传统无损同步
  15. python-百分号字符串拼接
  16. eNSP中静态路由器和默认路由器的配置连接
  17. iOS开发脚踏实地学习day14-绘图
  18. 3D数学基础——Rotator类的C++实现
  19. 【PHP】PHP开发环境搭建——windows篇(apache2.2.22+php5.3.29+mysql5.7)
  20. net-java-php-python-人事工资管理系统计算机毕业设计程序

热门文章

  1. matlab的单精度浮点数,关于matlab的单精度与双精度
  2. 网址生成二维码的简单操作
  3. 寻找n以内的亲密数对 python编程
  4. 图片识别工具怎么用?这几个识别图片方法你要知道
  5. 修改转移表空间些许操作
  6. can总线数据记录仪、can数据记录仪、CANFD数据记录仪CANLog-VCI产品介绍
  7. 关于计算机网络的诗句,人工智能辅助古诗词学习:以清华大学“九歌”诗词写作系统为例...
  8. hibernate 插入 效率_好签APP全新功能:手写签字、全文签批、插入印章、安全验签、文本输入、插入图片...
  9. jQuery实现table表格中行数据上下拖拽功能
  10. - PaaS - Gitlab/Nexus/Registry