成功构建应用程序后,启动失败,因为它依赖于META-INF目录中的配置文件,并且在构建后将该目录压缩到jar文件中,因此使其无法访问配置文件。手动解压缩jar,删除jar并使用xxx.jar重命名目录后,程序运行没有问题。
SSO登录(Kerberos)需要配置文件。
这是代码:
Bundle bundle = Platform.getBundle(Application.PLUGIN_ID);
String path;
try {
path = new URL(bundle.getLocation().substring(18)).getPath();
} catch (MalformedURLException e1) {
System.out.println(e1);
path="";
}
System.setProperty("java.security.auth.login.config",path+"META-INF/jaas-win.config");
路径变量包含类似“ plugin / mydomain.pluginame-xxxx.jar /”的内容
但是似乎系统需要解压缩jar。
我在构建应用程序时做错了吗?
谢谢
最佳答案
将代码更改为:
ClassLoader cl = Thread.currentThread().getContextClassLoader();
URL authconf = null;
authconf= cl.getResource("META-INF/jaas-win.config");
if (authconf == null) {
loginContext = null;
return;
}
String p;
try {
p = URLDecoder.decode(authconf.toExternalForm(), "UTF-8");
System.setProperty("java.security.auth.login.config", p);
} catch (UnsupportedEncodingException e1) {
loginContext = null;
return;
}
现在有效。