Spring Security 简介
Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解
决方案的安全框架。它提供了一组可以在 Spring 应用上下文中配置的 Bean,充分利用了
Spring IoC,DI(控制反转 Inversion of Control ,DI:Dependency Injection 依赖注入)和 AOP(面
向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控
制编写大量重复代码的工作
1.引入依赖在spring依赖引入的基础上,引入spring Security依赖,版本可以使用spring的版本
2.配置web.xml文件
1)添加加载Security配置的监听器,
2)注册安全认证的过滤器链
这些过滤器实际是在spring容器中管理,这里只是代理注册给web容器
3.添加配置文件 spring-security.xml
4、数据库动态校验用户
用户认证类
在SpringSecurity.xml中设置:
1)注册自定义认证类,并注入到认证管理器中
2)设置加密方式
BCrypt 加密算法
用户表的密码通常使用 MD5 等不可逆算法加密后存储,为防止彩虹表破解更会先使用
一个特定的字符串(如域名)加密,然后再使用一个随机的 salt(盐值)加密。 特定字符
串是程序代码中固定的,salt 是每个密码单独随机,一般给用户表加一个字段单独存储,比
较麻烦。 BCrypt 算法将 salt 随机并混入最终加密后的密码,验证时也无需单独提供之前的
salt,从而无需单独处理 salt 问题。
用户注册时的加密
5.权限设置(注解方式)
在业务层方法上通过注解@PreAuthorize,配置调用方法需要的权限: 例如:@PreAuthorize(“hasAuthority(‘PRODUCT_LIST’)”)