Spring Security面试

it2022-05-05  154

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’)”)


最新回复(0)