黑马程序员技术交流社区
标题: 冬至未至 [打印本页]
作者: 刘小贱 时间: 2018-12-23 11:38
标题: 冬至未至
大家。。。算了。。。不想打招呼了。。。。
因为现在的精神状态基本上就是:红红火火恍恍惚惚。。。。。
昨天好像是冬至,然而深圳却像是夏至,大概又是跑错片场了吧!
最近已经开始了第一个项目了,心心念念、惶惶恐恐的就开始了,再一次感叹时间过的真的是太太太太太快了。
今天跟大家分享一个我刚学会的安全框架--Spring Security框架:
1.Spring Security介绍:
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全訪问控制解决方式的安全框架(简单说是对訪问权限进行控制嘛)。它提供了一组能够在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能。为应用系统提供声明式的安全訪问控制功能,降低了为企业系统安全控制编写大量反复代码的工作。
2. Spring Security实现原理:
Spring Security对Web安全性的支持大量地依赖于Servlet过滤器。通过这些过滤器拦截进入请求,推断是否已经登录认证且具訪问相应请求的权限。
要完毕訪问控制。Spring Security至少须要以下四个拦截器(调度器、认证管理器、权限资源关联器、訪问决策器)进行配合完毕
(1)首先我们自己定义一个过滤器(调度器。这里我们命名为mySecurityInterceptor),这个过滤器继承AbstractSecurityInterceptor类(这里先说明,本文但凡不是自己定义的类或接口都是Spring Security提供的,无须深究)。 它至少包括 authenticationManager,accessDecisionManager,securityMetadataSource三个属性,我们的全部控制将在这三个类中实现。
(2)登录验证:自己定义类MyUserDetailService实现UserDetailsService接口和其loadUserByUsername方法,这种方法依据用户输入的username,从数据库里面获取该用户的全部权限细信息(统称用户信息)。Spring Security的AuthenticationProcessingFilter拦截器调用authenticationManager,类MyUserDetailService拿到用户信息后,authenticationManager对照用户的password(即验证用户),假设通过了,那么相当于通过了AuthenticationProcessingFilter拦截器,也就是登录验证通过。
(3)资源訪问控制:MySecurityInterceptor继承AbstractSecurityInterceptor、实现Filter是必须的。登陆后,每次訪问资源都会被MySecurityInterceptor这个拦截器拦截,它首先会调用MyFilterInvocationSecurityMetadataSource类的getAttributes方法获取被拦截url所需的权限,在调用MyAccessDecisionManager类decide方法推断用户是否够权限。
总的来说就是就是两个 :认证和授权。。。。
作者: 丝瓜 时间: 2019-4-4 17:45
发光并非太阳的专利,你也可以发光。加油
作者: 万年吃瓜 时间: 2019-4-9 18:29
为明天做准备的最好方法就是集中你所有智慧,所有的热忱,把今天的工作做得尽善尽美,这就是你能应付未来的唯一方法。加油!
作者: 柠檬leung不酸 时间: 2019-4-10 18:45
不要慨叹生活的痛苦!慨叹是弱者。——高尔基
作者: 柠檬leung不酸 时间: 2019-4-16 10:15
人生只有走出来的美丽,没有等出来的辉煌。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |