SpringSecurity之——权限管理与SpringSecurity概述

1. 为什么需要权限管理

  • 安全性:误操作、人为破坏、数据泄露等
  • 数据隔离:不同权限能看到及操作不同的数据
  • 明确职责:运营、客服等不同角色,leader和dev等不同级别

2.权限管理核心

  • 用户-权限:人员少,功能固定,或者特别简单的系统
  • RBAC(Role-Based Access Control):基于角色的权限访问控制,用户-角色-权限

3. 理想中的权限管理

  • 能实现的角色级权限 RBAC
  • 能实现功能级、数据级权限
  • 简单、易操作、能够应对各种需求

4. 相关操作界面

  • 权限管理界面、角色管理界面、用户管理界面
  • 角色和权限关系维护界面、用户和角色关系维护界面

5. 开源权限管理项目

  • Spring Security
  • Apache Shiro

6. SpringSecurity

6.1 常用认证模式

  • basic 是http1.0开始的、针对特定的资源需要提供用户名和密码才可以访问。用户名:密码 以base64编码,浏览器会在报文头部加入base64编码的内容,服务器解析出这些信息并且认证通过才可以访问。缺点:无状态,导致每次通信都需要要带上认证信息。传输不安全,认证信息用的是base64位编码,基本上属于明文传输,很容易对报文截取盗用认证信息
  • Digest 用来替代原来的basic模式、与basic不同的是、浏览器会对用户名、密码、http方法、对请求资源的uri等组合后进行md5加密再把计算得到的结果发送给服务器,服务器获取到信息后同样会对用户名密码http方法等组合运算后再次以结果比较,如果相同就是认证通过。避免了明文传输
  • X.509 证书认证
  • LDAP 是轻量级的目录访问协议
  • Form 基于表单的验证

6.2 常用权限拦截器讲解

  • SecurityContextPersistenceFilter 位于过滤器的顶端、是第一个起作用的过滤器。第一个用途是保证用户的session已经存在了SpringSecurity上下文中,第二个用户是在所有过滤器执行完后清空 SecurityContextHolder的内容
  • LogoutFilter 处理注销请求
  • AbstractAuthenticationProcessingFilter 处理form登录的过滤器
  • DefaultLoginPageGeneratingFilter 用来生成一个默认的登录页面
  • BasicAuthenticationFilter 进行basic验证的
  • SecurityContextHolderAwareRequestFilter 用来包装用户的请求
  • RememberMeAuthenticationFilter 记住我功能 依赖Cookie实现
  • AnonymousAuthencationFilter 当用户未登录时默认分配匿名权限
  • ExceptionTranslationFilter 处理filterSecurityInterceptor中抛出的异常
  • SessionManagementFilter 防止会话攻击
  • FilterSecurityInterceptor  包含用户的权限控制
  • FilterChainProxy 安装顺序来调用一组filter

总结:SpringSecurity:身份认证、权限拦截、权限缓存、权限的数据库管理、自定义决策

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰 河

可以吃鸡腿么?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值