zoukankan      html  css  js  c++  java
  • Spring Security授权 AccessDecisionManager

    在前面那篇博客有一段配置: 
    Xml代码  收藏代码
    1. <http auto-config="false" disable-url-rewriting="true" use-expressions="true" entry-point-ref="dtAuth"  
    2.      create-session="never">  
    3.      <!-- <session-management session-authentication-strategy-ref="dtsession"/> -->  
    4.      <intercept-url pattern="/unread/get" access="isAuthenticated()"/>  
    5.      <intercept-url pattern="/authtest.xhtm" access="hasRole('working')"/>  
    6.      <intercept-url pattern="/authtest1.xhtm" access="hasRole('trac')"/>  
    7.      <intercept-url pattern="/cmmt/uc" access="isAuthenticated()"/>  
    8.      <intercept-url pattern="/favicon.ico" access="denyAll"/>  
    9.      <intercept-url pattern="/**" access="permitAll"/>  
    10.      <custom-filter position="PRE_AUTH_FILTER" ref="dtSessionMgr"/>  
    11.  </http>  


    pattern表示url,access表示url的权限,但这个isAuthenticated()具体在哪里执行呢?原来Spring提供授权机制,由org.springframework.security.access.AccessDecisionManager这个接口来实现。 

    这个接口定义了这个方法: 
    Java代码  收藏代码
    1. void decide(Authentication authentication, Object object, Collection<ConfigAttribute> configAttributes)  
    2.     throws AccessDeniedException, InsufficientAuthenticationException;  


    对应上面的配置:object就是url,configAttributes就是一个access。常用的实现类是AffirmativeBased 
  • 相关阅读:
    CopyOnWriteArrayList
    Gradle version 2.2 is required. Current version is 2.10
    install mysql on ubuntu
    A<T extends B> and A <? extends B>
    java event listeners and dispatcher
    git
    linux patch usage
    Codeforces Round #404 (Div. 2) C 二分查找
    dijkstra算法模板及其用法
    Sublime Text 3 快捷键精华版
  • 原文地址:https://www.cnblogs.com/developer-ios/p/6230203.html
Copyright © 2011-2022 走看看