我正在尝试运行JAAS代码示例。
lc = new LoginContext("JaasSample", new TextCallbackHandler());要注册配置文件,我尝试以下命令:
java -Djava.security.auth.login.config=jaas.config JaasAcn并获取错误:
错误:找不到或加载主类.security.auth.login.config=jaas.config 由: java.lang.ClassNotFoundException: /security/auth/login/config=jaas/config引起
发布于 2018-01-09 09:04:35
首先编写javax而不是java,所以:
java -Djavax.security.auth.login.config=jaas.config JaasAcn第二,考虑以编程方式配置它:
javax.security.auth.login.Configuration类。AppConfigurationEntry[] getAppConfigurationEntry(String name)。在这个函数中,您可以返回一个AppConfigurationEntry对象,该对象表示配置文件中的一行。
新AppConfigurationEntry(NTLoginModule.class.getName(),AppConfigurationEntry.LoginModuleControlFlag.REQUIRED,新HashMap<>()
使用name参数,您可以在LoginContext构造函数中响应name参数。缩短的代码如下所示:
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);发布于 2018-01-08 21:43:29
显然,命令行中有一个错误:在-Djava之后有一个空格,因此.security.auth.login.config=jaas.config部件被作为类名(因此也相应地损坏了)。
https://stackoverflow.com/questions/48154954
复制相似问题