Weblogic 12 - 在已部署的应用程序中将Scoped角色更改为组映射

时间:2016-02-05 17:25:47

标签: weblogic12c roleprovider security-roles

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

  1. 通过IDP验证用户
  2. 对用户进行身份验证后,IDP会发回用户所属的群组
  3. 使用Web.xml和WebLogic.xml,我们将组映射到角色
  4. 我们的应用程序Scoped角色非常精细,它可以帮助我们执行以下操作:

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

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

      我的目标是执行以下操作:

      1. 通过我们的IDP验证用户
      2. IDP会向我们发送群组用户所属的
      3. 在web.xml中定义角色
      4. 定义我们的应用程序将读取的表以查找“组到角色映射”
      5. 使用Weblogic API执行组到角色映射
      6. 创建UI以允许我们的用户将组更改为角色映射
      7. 我遇到的问题是我无法使用WebLogic找到如何动态地进行组到角色映射,因为我无法访问允许我将组更改为角色的WebLogic API在我部署的应用程序中映射有人曾经这样做过吗?

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

2 个答案:

答案 0 :(得分:0)

从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

答案 1 :(得分:0)

不是一个具体的答案,但可以使用特定于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添加到服务器类路径中,并且实现在服务器启动时可用。