SprintSecurity
时间: 2024-01-04 07:03:01 浏览: 77
SpringSecurity
SprintSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC、DI(控制反转Inversion of Control)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
根据提供的引用内容,我们可以了解到Spring Security的主要功能包括:
1. spring-security-core.jar:核心包,任何Spring Security功能都需要此包。
2. spring-security-web.jar:web工程必备,包含过滤器和相关的Web安全基础结构代码。
3. spring-security-config.jar:用于解析xml配置文件,用到Spring Security的xml配置文件的就要用到此包。
4. spring-security-taglibs.jar:Spring Security提供的动态标签库,jsp页面可以使用。
在Spring Security的认证流程中,当SecurityContextHolder中的认证信息为空时,会创建一个匿名用户并存入到SecurityContextHolder中。Spring Security为了兼容未登录的访问,也会走一套认证流程,只不过是一个匿名的身份。
具体的认证流程是用户浏览器访问登录页面,输入账号和密码后提交登录请求。Spring Security的拦截器会拦截到登录请求,获取到用户名和密码封装成认证对象(Token对象),然后对用户进行认证工作。底层会调用InMemoryUserDetailsService通过用户名获取用户的认证信息,然后执行认证工作:将登录请求传入的密码与InMemoryUserDetailsService中加载的用户的密码进行匹配,匹配成功则跳转到成功地址,认证失败则返回错误。
阅读全文