首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAAS:如何加载配置文件?

JAAS:如何加载配置文件?
EN

Stack Overflow用户
提问于 2018-01-08 17:13:56
回答 2查看 4.6K关注 0票数 0

我正在尝试运行JAAS代码示例。

代码语言:javascript
复制
lc = new LoginContext("JaasSample", new TextCallbackHandler());

要注册配置文件,我尝试以下命令:

代码语言:javascript
复制
java -Djava.security.auth.login.config=jaas.config JaasAcn

并获取错误:

错误:找不到或加载主类.security.auth.login.config=jaas.config 由: java.lang.ClassNotFoundException: /security/auth/login/config=jaas/config引起

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-09 09:04:35

首先编写javax而不是java,所以:

代码语言:javascript
复制
java -Djavax.security.auth.login.config=jaas.config JaasAcn

第二,考虑以编程方式配置它:

  1. 继承javax.security.auth.login.Configuration类。
  2. 重写函数AppConfigurationEntry[] getAppConfigurationEntry(String name)。在这个函数中,您可以返回一个AppConfigurationEntry对象,该对象表示配置文件中的一行。 新AppConfigurationEntry(NTLoginModule.class.getName(),AppConfigurationEntry.LoginModuleControlFlag.REQUIRED,新HashMap<>() 使用name参数,您可以在LoginContext构造函数中响应name参数。
  3. 从Configuration类创建对象,并将其放入Configuration中: MyConfiguration config =新MyConfiguration();Configuration.setConfiguration(config);

缩短的代码如下所示:

代码语言:javascript
复制
Configuration config = new Configuration() {
    @Override
    public AppConfigurationEntry[] getAppConfigurationEntry(String name) {
        return new AppConfigurationEntry[]{
                new AppConfigurationEntry(NTLoginModule.class.getName(),
                    AppConfigurationEntry.LoginModuleControlFlag.REQUIRED,
                    new HashMap<>())
        };
    }
};
Configuration.setConfiguration(config);
票数 2
EN

Stack Overflow用户

发布于 2018-01-08 21:43:29

显然,命令行中有一个错误:在-Djava之后有一个空格,因此.security.auth.login.config=jaas.config部件被作为类名(因此也相应地损坏了)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48154954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档