原创

Spring Security权限框架

Spring Security 简介

Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解
决方案的安全框架。它提供了一组可以在 Spring 应用上下文中配置的 Bean,充分利用了
Spring IoC,DI(控制反转 Inversion of Control ,DI:Dependency Injection 依赖注入)和 AOP(面
向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控
制编写大量重复代码的工作

1.引入依赖在spring依赖引入的基础上,引入spring Security依赖,版本可以使用spring的版本

[外链图片转存失败(img-QQqkxNEs-1563436860635)(en-resource://database/1260:1)]

2.配置web.xml文件

1)添加加载Security配置的监听器,
 2)注册安全认证的过滤器链
    这些过滤器实际是在spring容器中管理,这里只是代理注册给web容器
[外链图片转存失败(img-cMDRb2Ad-1563436860636)(en-resource://database/1262:1)]

3.添加配置文件 spring-security.xml

[外链图片转存失败(img-XSBmTYPv-1563436860637)(en-resource://database/1264:1)]
[外链图片转存失败(img-54ehzQvj-1563436860638)(en-resource://database/1266:1)]
[外链图片转存失败(img-UtLlEhGA-1563436860640)(en-resource://database/1268:1)]

4、数据库动态校验用户

用户认证类
[外链图片转存失败(img-RuMWEQIe-1563436860641)(en-resource://database/1270:1)]
在SpringSecurity.xml中设置:
1)注册自定义认证类,并注入到认证管理器中
2)设置加密方式
BCrypt 加密算法
  用户表的密码通常使用 MD5 等不可逆算法加密后存储,为防止彩虹表破解更会先使用
一个特定的字符串(如域名)加密,然后再使用一个随机的 salt(盐值)加密。 特定字符
串是程序代码中固定的,salt 是每个密码单独随机,一般给用户表加一个字段单独存储,比
较麻烦。 BCrypt 算法将 salt 随机并混入最终加密后的密码,验证时也无需单独提供之前的
salt,从而无需单独处理 salt 问题。
[外链图片转存失败(img-O1r6WLZw-1563436860641)(en-resource://database/1272:1)]
[外链图片转存失败(img-kcjLW2uX-1563436860642)(en-resource://database/1274:1)]
[外链图片转存失败(img-WfcoaVhf-1563436860643)(en-resource://database/1276:1)]

用户注册时的加密
[外链图片转存失败(img-Q0NSpUkF-1563436860644)(en-resource://database/1278:1)]

5.权限设置(注解方式)

在业务层方法上通过注解@PreAuthorize,配置调用方法需要的权限: 例如:@PreAuthorize(“hasAuthority(‘PRODUCT_LIST’)”)
[外链图片转存失败(img-lUCABrtT-1563436860645)(en-resource://database/1280:1)]

正文到此结束
本文目录