【问题标题】:Weblogic 12 - Changing Scoped Role to Group mapping in the deployed applicationWeblogic 12 - 在已部署的应用程序中将作用域角色更改为组映射
【发布时间】:2016-05-15 18:37:54
【问题描述】:

我们当前的应用程序使用 JSF/JPA 技术并部署在 Weblogic 12.1.2 上并执行以下操作:

  1. 通过 IDP 对用户进行身份验证
  2. IDP认证用户后发回用户所属组
  3. 使用 Web.xml 和 WebLogic.xml 我们将组映射到角色

我们的 Application Scoped 角色非常精细,它可以帮助我们执行以下操作:

  1. 在 UI 上隐藏 UI 页面或组件
  2. 在方法上使用 RolesAllowed 注释

由于组到角色的映射在 Weblogic.xml 中,我们的应用程序用户无法更改组到角色的映射,这是我必须解决的问题。

我的目标是做到以下几点:

  1. 通过我们的 IDP 对用户进行身份验证
  2. IDP 会将用户所属的群组发送给我们
  3. 在 web.xml 中定义角色
  4. 定义我们的应用程序将读取的表以查找组到角色的映射
  5. 使用 Weblogic API 进行组到角色的映射
  6. 创建一个 UI 以允许我们的用户将组更改为角色映射

我遇到的问题是我无法找到如何使用 WebLogic 动态执行组到角色映射,因为我无法访问 WebLogic API,这将允许我在部署的组中更改组到角色映射应用。以前有人做过吗?

我已经研究过创建自定义角色映射器,但我不确定如何在我们部署的应用程序中获取此自定义角色映射器的句柄。

【问题讨论】:

标签: weblogic12c roleprovider security-roles


【解决方案1】:

不是一个具体的答案,但可以使用 Weblogic 特定的解决方案来完成。

请参阅以下示例: https://docs.oracle.com/cd/E13212_01/wles/docs42/dvspisec/examples.html

你必须实现 getRoles 方法:

import weblogic.security.spi.RoleMapper;
import weblogic.security.spi.RoleProvider;

public final class MyRoleMapperProviderImpl implements RoleProvider, RoleMapper 
{
   public Map getRoles(Subject subject, Resource resource,
      ContextHandler handler)
   {
      ...
   }
}

您也可以为它生成一个 MBean 来建立自动加载: https://docs.oracle.com/middleware/1213/wls/DEVSP/generate_mbeantype.htm#DEVSP617

java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true
weblogic.management.commo.WebLogicMBeanMaker

可以将结果作为 jar 添加到服务器类路径中,并且在服务器启动时可以使用该实现。

【讨论】:

    【解决方案2】:

    从 Java EE 7 开始,基于此线程是不可能的 dynamic roles on a Java EE server

    如果有人确实希望将此功能添加到 Java EE 8,那么请投票支持 Java EE 8 中的以下两个开放功能请求

    https://java.net/jira/browse/JAVAEE_SECURITY_SPEC-8 https://java.net/jira/browse/JASPIC_SPEC-22

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 2018-11-15
      • 2020-05-11
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多