1
0
mirror of https://github.com/RipMeApp/ripme.git synced 2025-08-16 02:44:10 +02:00

Ignore SSL verification option added (#175)

* add configuration to ignore SS verification
This commit is contained in:
joroto
2025-01-01 09:44:07 +02:00
committed by GitHub
parent 6487219469
commit 255e388af9
4 changed files with 57 additions and 2 deletions

View File

@@ -36,6 +36,11 @@ public abstract class AbstractHTMLRipper extends AbstractRipper {
protected AbstractHTMLRipper(URL url) throws IOException {
super(url);
if(Utils.getConfigBoolean("ssl.verify.off",false)){
Http.SSLVerifyOff();
}else {
Http.undoSSLVerifyOff();
}
}
protected abstract String getDomain();

View File

@@ -95,6 +95,7 @@ public final class MainWindow implements Runnable, RipStatusHandler {
private static JCheckBox configAutoupdateCheckbox;
private static JComboBox<String> configLogLevelCombobox;
private static JCheckBox configURLHistoryCheckbox;
private static JCheckBox configSSLVerifyOff;
private static JCheckBox configPlaySound;
private static JCheckBox configSaveOrderCheckbox;
private static JCheckBox configShowPopup;
@@ -212,6 +213,7 @@ public final class MainWindow implements Runnable, RipStatusHandler {
Utils.setConfigBoolean("descriptions.save", configSaveDescriptions.isSelected());
Utils.setConfigBoolean("prefer.mp4", configPreferMp4.isSelected());
Utils.setConfigBoolean("remember.url_history", configURLHistoryCheckbox.isSelected());
Utils.setConfigBoolean("ssl.verify.off", configSSLVerifyOff.isSelected());
Utils.setConfigString("lang", configSelectLangComboBox.getSelectedItem().toString());
saveWindowPosition(mainFrame);
saveHistory();
@@ -565,6 +567,8 @@ public final class MainWindow implements Runnable, RipStatusHandler {
true);
configURLHistoryCheckbox = addNewCheckbox(Utils.getLocalizedString("remember.url.history"),
"remember.url_history", true);
configSSLVerifyOff = addNewCheckbox(Utils.getLocalizedString("ssl.verify.off"),
"ssl.verify.off", false);
configUrlFileChooserButton = new JButton(Utils.getLocalizedString("download.url.list"));
configLogLevelCombobox = new JComboBox<>(
@@ -599,6 +603,7 @@ public final class MainWindow implements Runnable, RipStatusHandler {
addItemToConfigGridBagConstraints(gbc, idx++, configClipboardAutorip, configSaveAlbumTitles);
addItemToConfigGridBagConstraints(gbc, idx++, configSaveDescriptions, configPreferMp4);
addItemToConfigGridBagConstraints(gbc, idx++, configWindowPosition, configURLHistoryCheckbox);
addItemToConfigGridBagConstraints(gbc, idx++, configSSLVerifyOff, configSSLVerifyOff);
addItemToConfigGridBagConstraints(gbc, idx++, configSelectLangComboBox, configUrlFileChooserButton);
addItemToConfigGridBagConstraints(gbc, idx++, configSaveDirLabel, configSaveDirButton);
@@ -738,6 +743,7 @@ public final class MainWindow implements Runnable, RipStatusHandler {
configPreferMp4.setText(Utils.getLocalizedString("prefer.mp4.over.gif"));
configWindowPosition.setText(Utils.getLocalizedString("restore.window.position"));
configURLHistoryCheckbox.setText(Utils.getLocalizedString("remember.url.history"));
configSSLVerifyOff.setText(Utils.getLocalizedString("ssl.verify.off"));
optionLog.setText(Utils.getLocalizedString("Log"));
optionHistory.setText(Utils.getLocalizedString("History"));
optionQueue.setText(Utils.getLocalizedString("queue"));
@@ -1012,6 +1018,7 @@ public final class MainWindow implements Runnable, RipStatusHandler {
addCheckboxListener(configSaveLogs, "log.save");
addCheckboxListener(configSaveURLsOnly, "urls_only.save");
addCheckboxListener(configURLHistoryCheckbox, "remember.url_history");
addCheckboxListener(configSSLVerifyOff, "ssl.verify.off");
addCheckboxListener(configSaveAlbumTitles, "album_titles.save");
addCheckboxListener(configSaveDescriptions, "descriptions.save");
addCheckboxListener(configPreferMp4, "prefer.mp4");
@@ -1528,8 +1535,8 @@ public final class MainWindow implements Runnable, RipStatusHandler {
}
/*
* content key %path% the path to the album folder %url% is the album url
*
*
*
*
*/
if (Utils.getConfigBoolean("enable.finish.command", false)) {
try {

View File

@@ -13,11 +13,14 @@ import org.jsoup.HttpStatusException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import javax.net.ssl.*;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.Map;
@@ -230,4 +233,43 @@ public class Http {
}
throw new IOException("Failed to load " + url + " after " + this.retries + " attempts", lastException);
}
public static void SSLVerifyOff() {
try {
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
}
};
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
HostnameVerifier allHostsValid = (hostname, session) -> true;
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
} catch (Exception e) {
logger.error("ignoreSSLVerification() failed.");
logger.error(e.getMessage());
}
}
public static void undoSSLVerifyOff() {
try {
// Reset to the default SSL socket factory and hostname verifier
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, null, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(HttpsURLConnection.getDefaultHostnameVerifier());
} catch (Exception e) {
logger.error("undoSSLVerificationIgnore() failed.");
logger.error(e.getMessage());
}
}
}

View File

@@ -26,6 +26,7 @@ save.descriptions = Save descriptions
prefer.mp4.over.gif = Prefer MP4 over GIF
restore.window.position = Restore window position
remember.url.history = Remember URL history
ssl.verify.off = SSL verify off
loading.history.from = Loading history from
# Queue keys