`
san_yun
  • 浏览: 2662208 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Spring Security授权 AccessDecisionManager

 
阅读更多
在前面那篇博客有一段配置:
   <http auto-config="false" disable-url-rewriting="true" use-expressions="true" entry-point-ref="dtAuth"
        create-session="never">
        <!-- <session-management session-authentication-strategy-ref="dtsession"/> -->
        <intercept-url pattern="/unread/get" access="isAuthenticated()"/>
        <intercept-url pattern="/authtest.xhtm" access="hasRole('working')"/>
        <intercept-url pattern="/authtest1.xhtm" access="hasRole('trac')"/>
        <intercept-url pattern="/cmmt/uc" access="isAuthenticated()"/>
        <intercept-url pattern="/favicon.ico" access="denyAll"/>
        <intercept-url pattern="/**" access="permitAll"/>
        <custom-filter position="PRE_AUTH_FILTER" ref="dtSessionMgr"/>
    </http>


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

这个接口定义了这个方法:
    void decide(Authentication authentication, Object object, Collection<ConfigAttribute> configAttributes)
        throws AccessDeniedException, InsufficientAuthenticationException;


对应上面的配置:object就是url,configAttributes就是一个access。常用的实现类是AffirmativeBased
分享到:
评论

相关推荐

    Spring security认证授权

    - **访问决策管理器**:Spring Security使用`AccessDecisionManager`来决定用户是否可以访问某个资源。默认使用投票机制,根据用户的权限角色来决定。 - **访问控制表达式**:你可以使用`@PreAuthorize`和`@...

    Spring Security in Action

    在 Spring Security 中,授权是通过 AccessDecisionManager 实现的。AccessDecisionManager 负责对用户的权限进行评估,并决定用户是否有权限访问某个资源。 在 Spring Security 中,有多种授权机制,例如基于角色...

    spring security实现动态授权

    6. **配置SecurityConfig**:在Spring Security的配置类中,你需要配置`http`,设置认证和授权规则,包括使用自定义的`UserDetailsService`和`AccessDecisionManager`。 7. **动态权限更新**:创建一个服务接口,...

    SpringSecurity笔记,编程不良人笔记

    在`SpringSecurity.md`和`SpringSecurity.pdf`文档中,可能包含SpringSecurity配置、自定义用户服务、授权策略等方面的代码示例。`codes`目录可能包含实际运行的项目代码,方便读者实践和理解。 8. **图笔记.draw...

    springsecurity学习笔记

    在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...

    spring security 完整项目实例

    Spring Security 是一个强大的安全框架,用于为Java应用提供身份验证和授权服务。在这个完整的项目实例中,我们将深入探讨Spring Security的核心概念以及如何将其应用于实际的Web应用程序开发。 首先,我们从用户、...

    spring security oauth2.0 (讲义+代码)

    在Spring Security中,我们可以通过配置`AuthorizationCodeServices` 和 `TokenStore` 来处理授权码和令牌的存储和验证。 资源服务器需要识别并验证OAuth2.0令牌,以保护资源不被未经授权的访问。Spring Security ...

    spring spring security2.5 jar

    Spring Security通过访问决策管理器(AccessDecisionManager)和访问决策投票器(AccessDecisionVoter)实现这一过程。开发者可以自定义权限表达式(例如,`hasRole('ROLE_ADMIN')`)并结合方法或URL安全配置进行...

    spring security3 中文版本

    - `LDAP-spring-security-ldap.jar`:支持 LDAP 认证和授权。 - `ACL-spring-security-acl.jar`:提供了基于 ACL 的访问控制功能。 - `CAS-spring-security-cas-client.jar`:支持 CAS 协议的单点登录功能。 - `...

    狂神Spring Security静态资源

    3. **使用Spring Security的访问决策管理器(AccessDecisionManager)**:如果你希望控制哪些角色可以访问静态资源,可以实现自己的访问决策管理器,然后在配置中指定使用这个管理器。 4. **使用HTTP基本认证或OAuth2...

    spring-security 官方文档 中文版

    Spring Security 是一款基于 Spring 框架的安全插件,提供了完整的安全性解决方案,包括身份认证(Authentication)、授权(Authorization)以及会话管理(Session Management)等功能。Spring Security 的设计目标是为...

    SpringSecurity素材.rar

    在SpringBoot Web开发中,SpringSecurity扮演着核心角色,负责处理身份验证、授权以及访问控制等方面的安全需求。狂神(秦疆)的教程以SpringBoot为基础,深入讲解了如何集成和使用SpringSecurity来构建安全的Web...

    SpringSecurity入门小demo(SSM+Spring Security)

    在 `HelloSpringSecurity` 文件中,你可能看到以下关键代码: - **WebSecurityConfigurerAdapter** 类:这是 Spring Security 提供的配置适配器,可以覆盖其方法来定制安全规则。 - `configure(HttpSecurity http)...

    Spring Security 3.pdf

    Spring Security 是一个强大的Java安全框架,专为Java和Spring生态系统设计,用于实现全面的身份验证、授权和服务级安全功能。在Spring Security 3版本中,它引入了许多改进和新特性,以适应不断变化的安全需求和...

    Spring Security 2 中文参考文档(chm)

    Spring Security使用AccessDecisionManager来处理授权决策。它可以基于角色(Role-Based Access Control, RBAC)、权限(Permission-Based Access Control, PBAC)或者复杂的访问控制表达式(Access Control ...

    Spring Security如何使用URL地址进行权限控制

    Spring Security是一个功能强大且广泛应用的Java安全框架,它提供了许多功能,包括身份验证、授权、加密等。其中,权限控制是Spring Security的一个重要组件,它允许开发者根据用户角色和权限来控制访问不同的资源...

    基本的spring mvc + spring security实现的登录(无数据库)

    - 接下来的请求会被Spring Security的权限检查,根据AccessDecisionManager决定是否允许访问资源。 4. **STS(Spring Tool Suite)**: - **集成开发环境**:STS是Eclipse的扩展,专为Spring开发提供了一系列工具,...

    SpringBoot_SpringSecurity-源码.rar

    授权部分,SpringSecurity使用AccessDecisionManager和AuthorizationManager来控制权限。你可以定义访问决策策略,比如基于角色的访问控制(RBAC),定义哪些角色可以访问哪些资源。`@PreAuthorize`和`@...

    Spring security认证与授权(一)源代码

    Spring Security的`@PreAuthorize`和`@PostAuthorize`注解允许你使用SpEL(Spring Expression Language)来定义复杂的授权规则。例如,你可以限制只有管理员才能删除用户。 9. **OAuth2集成** 如果你的应用需要与...

    springSecurityTest.zip

    这个"springSecurityTest.zip"文件是一个IDEA(IntelliJ IDEA)与MAVEN项目,设计用于帮助初学者理解并入门Spring Security。下面将详细阐述Spring Security的主要概念和其在实际开发中的应用。 首先,Spring ...

Global site tag (gtag.js) - Google Analytics