Java 无法运行setDefaultHostnameVerifier
基本上,我试图在本地数据库中的LotusNotesJava代理中执行以下代码,以强制忽略SSL证书的主机名不匹配Java 无法运行setDefaultHostnameVerifier,java,lotus-notes,lotus-domino,Java,Lotus Notes,Lotus Domino,基本上,我试图在本地数据库中的LotusNotesJava代理中执行以下代码,以强制忽略SSL证书的主机名不匹配 HostnameVerifier hv = new HostnameVerifier() { public boolean verify(String urlHostName, SSLSession session) { System.out.println("Warning: URL Host:
HostnameVerifier hv = new HostnameVerifier() {
public boolean verify(String urlHostName, SSLSession session) {
System.out.println("Warning: URL Host: " + urlHostName + " vs. "
+ session.getPeerHost());
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
但是,我遇到了一个错误,该错误表示对特定方法的访问被拒绝
java.security.AccessControlException:拒绝访问
(javax.net.ssl.SSLPermission setHostnameVerifier)位于
java.security.AccessController.throwACE(AccessController.java:100)位于
java.security.AccessController.checkPermission(AccessController.java:174)
在
checkPermission(SecurityManager.java:544)
在
COM.ibm.JEmpower.applet.AppletSecurity.superDotCheckPermission(AppletSecurity.java:1449)
在
COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1617)
在
COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1464)
在
javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(HttpsURLConnection.java:40)
在JavaAgent.NotesMain(JavaAgent.java:45)处
lotus.domino.AgentBase.runNotes(未知源代码)位于
lotus.domino.NotesThread.run(未知源)
我在java.policy文件中尝试了以下代码,但错误仍然相同
权限javax.net.ssl.SSLPermission“setHostnameVerifier”
我在EclipseIDE中尝试了相同的代码并运行了它,效果很好 在某些情况下,将代码放在外部jar文件中似乎可以做到这一点。你看到这个了吗?它详细介绍了如何解决此类问题。在某些情况下,将代码放入外部jar文件似乎可以解决问题。你看过这篇文章吗?这成功了!谢谢你的文章。外部jar文件和提升的功能权限。我很高兴它为您工作。如能投票和/或接受,将不胜感激!:-)这是一个评论,所以我只是投了更高的票。。。如果你能把它写在“回答你的问题”中,我会立即投票并接受它作为答案。你是对的!我曾辩论过是否要回答这个问题,但决定不回答,因为这类许可问题可能非常神秘。我现在就去。