我有一个使用java keytool生成的密钥自我签名的jar。在运行时,我尝试使用以下代码检索证书:
ProtectionDomain pd = MyApplication.class.getProtectionDomain();
Certificate[] cert = pd.getCodeSource().getCertificates();
当我的jar用于独立的命令行java应用程序时,这很好用。但是,当我在Weblogic服务器中部署的Web应用程序中使用此jar时,getCertificates()调用将返回null。为什么呢?
答案 0 :(得分:1)
因为容器已配置为解压缩.WAR文件,所以它直接从WEB-INF / classes目录而不是.WAR文件加载类。因此代码源是一个目录,因此它没有证书。