一、SpringSecurity是什么

SpringSecurti基于Spring框架,提供了一套Web应用安全性的完整解决方案
一般来说,Web应用的安全性包括用户认证(Authenticataion)和用户授权(Authorization)两个部分
这两点也是Spring Security重要核心功能
(1)用户认证:用户是否能登录
(2)用户授权:用户是否有权限去做某些事情

二、SpringSecurity与Shiro对比

SpringSecurity特点:
(1)和Spring无缝整合
(2)全面的权限控制
(3)专门为Web开发而涉及
(4)重量级(缺点)
Shiro特点:
(1)轻量级
(2)通用性
总结: 功能强于Shiro,但比Shiro复杂

三、SpringSecurity引入


此时访问接口会先弹出用户登录页面
用户名:user
密码:

四、SpringSecurity基本原理

SpringSecurity本质是一个过滤器链,有很多过滤器

通过查看源码
FilterSecurityInterceptor:是一个方法级的权限过滤器,基本位于过滤链的最底部
ExceptionTranslationFilter:是个异常过滤器,用来处理再认证授权过程中抛出的异常
UsernamePasswordAuthenticationFilter:对/login的POST请求做拦截,校验表单中用户名,密码

过滤器是如何加载的?
(springboot会自动化配置)

两个重要接口

UserDetailsService接口: 查询数据库用户名和密码过程
当什么也没有配置的时候,账号和密码是由Spring Security定义生成的。而在实际项目中账号和密码都是从数据库中查询出来的。所以我们要通过自定义逻辑控制认证逻辑。
如果需要自定义逻辑,只需要实现UserDetailsService接口即可。
(1)创建类继承UsernamePasswordAuthenticationFilter,重写三个方法
(2)创建类实现UserDetailService,编写查询数据过程,返回User对象,这个User对象是安全框架提供对象
PasswordEncoder接口: 数据机密接口,用于返回User对象里面的密码

五、Web权限方案

(1)认证
(2)授权

1、设置登录的用户名和密码
第一种方式:通过配置文件

第二种方式:通过配置类

第三种方式:自定义编写实现类
第一步:创建配置类,设置使用哪个userDetailsService实现类

第二步:编写实现类,返回User对象,User对象有用户名密码和操作权限

尚硅谷-SpringSecurity相关推荐

  1. 【视频分享】尚硅谷Java视频教程_Spring Boot视频教程(下)整合篇

    尚硅谷Java视频教程_Spring Boot视频教程(下)整合篇 巅峰之作,全网仅此一套,再无企及! SpringBoot是企业级开发的整体整合解决方案,特别用于快速构建微服务应用,旨在用最简单的方 ...

  2. 尚硅谷面试第二季(周阳主讲)

    尚硅谷面试第二季 1.volatile关键字 volatile是什么 volatile的作用 1.保证可见性 2.不保证原子性 3.禁止指令重排 DCL(单例模式双重锁) JMM模型 JMM是什么 J ...

  3. 微服务项目实战技术点汇总:“尚硅谷的谷粒在线教育” 一、教师管理模块

    文章目录 一.创建数据库和表(我们这里只使用edu_teacher表) 二.环境搭建 1.父工程 2.子模块service,当做api接口服务父节点 3.创建service的子模块service-ed ...

  4. 经典再现,看到就是赚到。尚硅谷雷神 - SpringBoot 2.x 学习笔记 -高级与场景整合篇

    SpringBoot 2.x 场景整合 在上一篇核心功能篇里,我们已了解SpringBoot的配置文件.web开发.数据访问.JUnit5单元测试.生产指标监控.SpringBoot启动流程等.然而S ...

  5. 尚硅谷谷粒学院2020 高级篇代码_尚硅谷联合KubeSphere ,共同打造企业级云原生课程!...

    原作者姓名:尚硅谷教育 原出处:尚硅谷公众号 原文链接:尚硅谷联合KubeSphere ,共同打造企业级云原生课程! 近日,尚硅谷与KubeSphere 达成合作,在"大厂学院:拥抱云原生& ...

  6. 尚硅谷Docker---1、docker杂记

    尚硅谷Docker---1.docker杂记 一.总结 一句话总结: ~ php用的homestead就相当于docker,javaee一般都是用docker,php也可以用docker ~ dock ...

  7. 尚硅谷SpringCloud(H版alibaba)框架开发教程(大牛讲授spring cloud) 最详细的。

    尚硅谷SpringCloud(H版&alibaba)框架开发教程(大牛讲授spring cloud) 一. 从2.2.x和H版开始说起 二.关于Cloud各种组件的停更/升级/替换 三.微服务 ...

  8. JavaScript(基础、高级)笔记汇总表【尚硅谷JavaScript全套教程完整版】

    目   录 前言 JavaScript(基础+高级)配套资料下载 JavaScript 基础 学习地址 学习笔记 day 05(P001-P006)[2016.11.22] day 06(P007-P ...

  9. promise的状态以及api介绍_Promise从入门到自定义 | 尚硅谷Promise新版视频发布!

    尚硅谷发布全新升级版前端课程,推出"5+100+3"人才培养新模式,5.5个月系统学习+100课时进阶课程+3年谷粒学院VIP课程,为技术成长持续赋能,打造前端架构师!预知详情,猛 ...

最新文章

  1. 用 Heapster 监控集群 - 每天5分钟玩转 Docker 容器技术(176)
  2. bzoj1188: [HNOI2007]分裂游戏
  3. LinearLayout的一些注意事项
  4. 模型人的因素_肺癌风险预测模型中纳入肺功能如何?
  5. 【java学习之路】(java SE篇)006.异常
  6. Python:批量修改图片的后缀名(模板)
  7. Spark机器学习:MLlib
  8. HTML页面跳转及表单详解
  9. 基础篇:6.10)形位公差-包容原则与可逆原则的标注步骤全解;
  10. 计算机为什么硬盘值钱,数据到底有多值钱?看完硬盘数据恢复价格你就知道了...
  11. html5页面命名,html命名规范
  12. 嗅探技术---网络安全入门笔记DAY5
  13. 《2018年4月1日》
  14. 系统运维工程师30岁学python_一名Linux系统运维工程师的自述
  15. 笔记-项目人力资源管理-制订人力资源计划-矩阵图
  16. ubuntu 自动切换壁纸
  17. 快音视-视频id解密
  18. 使用你的linux系统下载BT
  19. 计算机控制系统AD实验报告,实验一AD转换实验报告.docx
  20. 荷月区块链供应链金融平台系统入选2020区块链技术创新成果

热门文章

  1. 多重网格法(multigrid)求解1d泊松方程--python
  2. Carmack(卡马克)传奇的3D引擎开源代码
  3. iOS 自带地图详解
  4. 云产研见客户的行为分析
  5. pip的基本命令和使用
  6. SketchUp: Modeling Exteriors from Photos SketchUp:从照片建模外部 Lynda课程中文字幕
  7. 错题集:HDLBits lfsr5 Galois型lfsr
  8. 高德地图手机端定位偏移问题
  9. html自动关闭当前页面,html如何关闭当前页面
  10. 两片74161实现60进制_用二进制计数器集成芯片74161设计:(1)60进制计数器 (2)6×10进制计数器 (3)10×6进制计数器的实验思路...