【问题标题】:What is the equivalent of security-role-ref and role-link in Spring Security 3.0?Spring Security 3.0 中的 security-role-ref 和 role-link 等价物是什么?
【发布时间】:2012-05-23 11:31:09
【问题描述】:

我正在将带有 web.xml、security-constraint(s)、security-role(s) 和 login-config 的标准 web-app 移植到 Spring Security 3.0。我在 web.xml 中找到了几乎所有功能的等效映射,除了 security-role-ref 元素。

我不想规定安全角色名称用于部署环境,因此我利用 J2EE 安全的映射功能将逻辑角色名称映射到物理角色名称,如下所示:

<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>org.example.MyServlet</servlet-class>
    <security-role-ref>
        <role-name>MANAGER</role-name>
        <role-link>DISTRICT_MANAGER</role-link>
    </security-role-ref>
</servlet>

请注意,在上面的 sn-p 中,代码或 JSP 中有一个或多个检查,以查看用户是否处于逻辑角色“MANAGER”中。在此特定部署中,该角色链接到从 JAAS 上下文(JDBC 或 LDAP)返回的物理角色“DISTRICT_MANAGER”。

Spring Security 3.0 中是否有类似的映射工具?我希望避免修改应用程序以检查部署环境的物理角色,并且我无法让系统管理员仅为我的应用程序向用户的 LDAP 记录添加特定角色/权限。

提前致谢。

【问题讨论】:

    标签: java spring jakarta-ee spring-security


    【解决方案1】:

    Spring Security 3.1 有一个称为GrantedAuthoritiesMapper 的通用映射策略,您可以实现它并将其注入AuthenticationProvider,以告诉它如何将其加载的权限转换为将用于在应用程序中做出决策的权限。

    如果您使用的是早期版本,您可以直接实现AuthenticationProvider,并自行自定义创建Authentication 对象。例如,您可以在应用程序上下文文件中定义一组定义为映射的映射,并使用这些映射创建从提供者返回的最终权限集。映射实际上刚刚从 web.xml 移动到应用上下文文件(并且应该不那么冗长)。

    【讨论】:

      猜你喜欢
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      • 2015-04-20
      • 2017-03-03
      • 2018-03-02
      相关资源
      最近更新 更多