Spring Security——组件

一、Security Interceptor:

        Security Interceptor组件是Spring Security中最重要的组件,它用来鉴定一个请求是否可以访问某个资源。包含一个抽象类AbstractSecurityInterceptor,以及两个具体的实现类FilterSecurityInterceptor 以及MethodSecurityInterceptor。

       Security Interceptor包含preprocessing和post processing两个步骤。

       在preprocessing中,首先确认要访问的资源是否有安全限制。如果没有,继续操作。如果有,Security Interceptor从当前的SecurityContext中获取Authentication对象。如果有必要,Authentication对象会被AuthenticationManager认证。认证通过后,AccessDecisionManager会被调用,决定认证后的对象是否可以访问资源。如果不允许,抛出AccessDeniedException。如果允许,而且配置了RunAsManager,Authentication对象被传递给RunAsManager。RunAsManager会返回一个新的Authentication对象,包含相同的principal,credentials,原有的authorities再加上当前的权限。新的Authentication对象被放入当前的SecurityContext。 这个过程结束后,Security Interceptor会创建一个新的包含Security Context和ConfigAttributes内容的InterceptorStatusToken。这个token会在postprocessing步骤中使用。

         接着,会调用资源。

         最后,开始postprocessing。        

二、XML namespace

三、Filters and Filter Chain

    Security Security使用过滤器链模型来实现应用安全。这个模型基于标准的servlet过滤器功能。

四、ConfigAttribute

五、Authentication对象

    对象Authentication是一个抽象概念,它有几种不同实现,代表了登入系统的实体,通常为用户。

  

六、SecurityContext和SecurityContextHolder

    SecurityContext用来存储当前线程的Authentication对象。SecurityContextHolder是用来访问SecurityContext的类。

七、AuthenticationProvider

AuthenticationProvider 是Authentication对象的主要入口。

八、AccessDecisionManager

AccessDecisionManager用来确定某一个authentication对象是否可以访问某一特定资源。

九、AccessDecisionVoter

十、UserDetailsService和AuthenticationUserDetailsService

     UserDetailsService负责从用户应用中(例如内存,数据库)获取用户信息。

 十一、UserDetails

     UserDetails是系统的一个主要抽象,用来表示用户。

十二、ACL

十三、JSP Taglib

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值