jakarta-ee - 如何让 weblogic 从内部文件中获取登录模块 jaas.config?

标签 jakarta-ee weblogic

我们的应用程序有一个自定义登录模块(实际上有几个)。我们最近从 OC4J 迁移到 Weblogic,我们曾经在 system-jazn-data.xml 中进行配置。

我们已经让我们的身份验证正常工作,但是,要使用 JAAS 模块,我们必须配置一个指向 jaas.config 文件的 java 启动参数:

-Djava.security.auth.login.config=/path/to/jaas.config

文件内容:
DatabaseAuthentication {
  uk.co.corelogic.framework.security.auth.module.RDBMSLoginModule optional debug=false;
};

我的问题是,还有其他方法可以做到这一点吗?

问题是,我试图从应用程序耳中删除任何外部依赖项,以便可以使用默认配置部署它,而无需在应用程序服务器上创建文件。

我到处看了看,但我发现的所有说明都说要指定一个外部文件。这是一个非常简单的配置——它可以放在任何地方的部署描述 rune 件中吗?

还有其他一些事情我也需要改变,但它们需要单独的问题:)

最佳答案

好的,我花了一些时间研究这个,我认为我有一个不错的解决方案。而不是使用 login.conf文件和 -Dsecurity.auth.login..垃圾,您可以创建一个包含必要信息的配置类,并在创建 LoginContext 时将其传入。 .这是我制作的类的一个简单示例:

public class MyAppLoginModuleConfig extends javax.security.auth.login.Configuration {
    private static final String APP_NAME = "MyApp";
    private static final String LOGIN_MODULE_CLASS = "com.myapp.security.MyLoginModule";

    @Override
    public AppConfigurationEntry[] getAppConfigurationEntry(String name) {
        if (name.equals(APP_NAME)) {
            AppConfigurationEntry[] configArr = new AppConfigurationEntry[1];

            configArr[0] = new AppConfigurationEntry(
                LOGIN_MODULE_CLASS,
                AppConfigurationEntry.LoginModuleControlFlag.REQUISITE, // or required, sufficient, etc
                new HashMap<String, Object>()); // for any options you have, can't be null
            return configArr;
        }
        // something funky happened and we're trying to look up a different app
        throw new RuntimeException("Expected app: " + APP_NAME + ", but got: " + name);
    }
}

当你创建你的登录上下文时,像这样传递它:
Subject subject = null;
Configuration myAppConfig = new MyAppLoginModuleConfig();
LoginContext ctx = new LoginContext("MyApp", subject, callbackHandler, myAppConfig);

关于jakarta-ee - 如何让 weblogic 从内部文件中获取登录模块 jaas.config?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9810625/

相关文章:

java - 数据持久性的业务代码强制约束

jakarta-ee - Java EE 容器与 Web 容器

java - 即使在删除后,JNDI 名称也已绑定(bind)到 ConnectionFactory

deployment - Weblogic应用程序上下文根是war文件名而不是weblogic.xml中指定的名称

java - Weblogic 9.2.1 上的 RichFaces

java - Weblogic应用程序提示缺少某些类,如何调试?

deployment - 部署 webLogic 12c 应用程序时出现 nullPointerException

jakarta-ee - JAXRS/RestEasy 限制请求率

java - 用于敏感用户数据的 SSL Servlet,用于其他所有内容的 NonSSL Servlet

javascript - 防止双击导致 HTML 表单中的重复提交