use*_*915 5 javascript java rhino
我正在尝试用Javascript实现我自己的TrustManager,但是我不知道如何实现它。
在Java中,我具有以下内容:
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
Run Code Online (Sandbox Code Playgroud)
我尝试对X509TrustManager使用以下代码:
js> obj = { getAcceptedIssuers : function() { return null; }, checkClientTrusted: function() { }, checkServerTrusted: function() { } }
[object Object]
js> x509tm = new javax.net.ssl.X509TrustManager(obj)
adapter1@2eee9593
js>
Run Code Online (Sandbox Code Playgroud)
然后,我不知道如何创建TrustManager。如何使用Javascript(Rhino 1.6版本7 2008 01 02)执行此操作?
经过几个小时的努力,我终于成功实现了它。
以下是与上述 Java 部分对应的代码:
obj = { getAcceptedIssuers : function() { return null; }, checkClientTrusted: function() { return; }, checkServerTrusted: function() { return; } };
var o = new JavaAdapter(javax.net.ssl.X509TrustManager, obj);
var oo = new Array();
oo.push(o);
Run Code Online (Sandbox Code Playgroud)
然后使用它,一切都变得简单:
var sc = javax.net.ssl.SSLContext.getInstance("SSL");
sc.init(null, oo, new java.security.SecureRandom());
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
Run Code Online (Sandbox Code Playgroud)
希望这对处于相同情况的人有所帮助。
| 归档时间: |
|
| 查看次数: |
410 次 |
| 最近记录: |