javafx WebView接受所有网站证书
时间: 2023-09-05 17:08:16 浏览: 65
对于JavaFX中的WebView控件来说,默认情况下是不会接受所有网站证书的。WebView会使用JavaFX内置的证书存储区域来验证网站的证书。如果某个网站的证书无效或不被信任,WebView会拒绝加载该网站。
然而,你可以通过实现自定义的WebViewClient来绕过证书验证,使WebView接受所有网站证书。以下是一个示例代码:
```java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker;
import javafx.concurrent.Worker.State;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(final Stage primaryStage) {
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
// 忽略证书验证
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
@Override
public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) {
if (newValue == Worker.State.RUNNING) {
// 等待加载完成后再设置忽略证书验证
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
@Override
public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) {
if (newValue == Worker.State.SUCCEEDED) {
webEngine.executeScript(""
+ "var originalSetCertificateVerifyCallback = Packages.com.sun.webkit.network.URLLoader.setCertificateVerifyCallback;\n"
+ "Packages.com.sun.webkit.network.URLLoader.setCertificateVerifyCallback = function(host, callback) {\n"
+ " callback.apply(null, [0]);\n" // 始终返回0,即接受证书
+ "};");
}
}
});
}
}
});
webEngine.load("https://example.com"); // 加载你想要访问的网站
primaryStage.setScene(new Scene(webView));
primaryStage.show();
}
}
```
上述代码将忽略WebView的证书验证,始终接受所有网站证书。请注意,这种做法可能会导致安全风险,因为WebView将不再验证网站的真实性和可信度。应谨慎使用,并确保你了解潜在的风险。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)