diff --git a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java index 244958591..94bf88974 100644 --- a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java +++ b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java @@ -739,13 +739,13 @@ private void loadSettings() { editor.putBoolean(Constants.PREFERENCES_KEY_OFFLINE, false); editor.putString(Constants.PREFERENCES_KEY_SERVER_NAME + 1, "Demo Server"); - editor.putString(Constants.PREFERENCES_KEY_SERVER_URL + 1, "http://demo.subsonic.org"); - editor.putString(Constants.PREFERENCES_KEY_USERNAME + 1, "guest"); + editor.putString(Constants.PREFERENCES_KEY_SERVER_URL + 1, "https://demo.navidrome.org"); + editor.putString(Constants.PREFERENCES_KEY_USERNAME + 1, "demo"); if (Build.VERSION.SDK_INT < 23) { - editor.putString(Constants.PREFERENCES_KEY_PASSWORD + 1, "guest"); + editor.putString(Constants.PREFERENCES_KEY_PASSWORD + 1, "demo"); } else { // Attempt to encrypt password - String encryptedDefaultPassword = KeyStoreUtil.encrypt("guest"); + String encryptedDefaultPassword = KeyStoreUtil.encrypt("demo"); if (encryptedDefaultPassword != null) { // If encryption succeeds, store encrypted password and flag password as encrypted @@ -753,7 +753,7 @@ private void loadSettings() { editor.putBoolean(Constants.PREFERENCES_KEY_ENCRYPTED_PASSWORD + 1, true); } else { // Fall back to plaintext if Keystore is having issue - editor = editor.putString(Constants.PREFERENCES_KEY_PASSWORD + 1, "guest"); + editor = editor.putString(Constants.PREFERENCES_KEY_PASSWORD + 1, "demo"); editor.putBoolean(Constants.PREFERENCES_KEY_ENCRYPTED_PASSWORD + 1, false); } } diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SettingsFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SettingsFragment.java index f76677d59..8638c44cb 100644 --- a/app/src/main/java/github/daneren2005/dsub/fragments/SettingsFragment.java +++ b/app/src/main/java/github/daneren2005/dsub/fragments/SettingsFragment.java @@ -585,6 +585,12 @@ public void onClick(View v) { serverAuthHeaderPreference.setSummary(R.string.settings_server_authheaders_summary); serverAuthHeaderPreference.setTitle(R.string.settings_server_authheaders); + final CheckBoxPreference serverAllowInsecurePreference = new CheckBoxPreference(context); + serverAllowInsecurePreference.setKey(Constants.PREFERENCES_KEY_SERVER_ALLOW_INSECURE + instance); + serverAllowInsecurePreference.setChecked(Util.isAllowInsecureEnabled(context, instance)); + serverAllowInsecurePreference.setSummary(R.string.settings_server_allowinsecure_summary); + serverAllowInsecurePreference.setTitle(R.string.settings_server_allowinsecure); + final Preference serverOpenBrowser = new Preference(context); serverOpenBrowser.setKey(Constants.PREFERENCES_KEY_OPEN_BROWSER); serverOpenBrowser.setPersistent(false); @@ -660,6 +666,7 @@ public boolean onPreferenceClick(Preference preference) { screen.addPreference(serverTagPreference); screen.addPreference(serverSyncPreference); screen.addPreference(serverAuthHeaderPreference); + screen.addPreference(serverAllowInsecurePreference); screen.addPreference(serverTestConnectionPreference); screen.addPreference(serverOpenBrowser); screen.addPreference(serverRemoveServerPreference); diff --git a/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java index 8fdafc111..cf19e422c 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java @@ -89,6 +89,7 @@ import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLException; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; @@ -108,7 +109,7 @@ public class RESTMusicService implements MusicService { private static final int HTTP_REQUEST_MAX_ATTEMPTS = 5; private static final long REDIRECTION_CHECK_INTERVAL_MILLIS = 60L * 60L * 1000L; - private SSLSocketFactory sslSocketFactory; + private SSLSocketFactory insecureSslSocketFactory; private HostnameVerifier selfSignedHostnameVerifier; private long redirectionLastChecked; private int redirectionNetworkType = -1; @@ -132,9 +133,9 @@ public void checkServerTrusted( } }; try { - SSLContext sslContext = SSLContext.getInstance("TLS"); - sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); - sslSocketFactory = sslContext.getSocketFactory(); + SSLContext insecureSslContext = SSLContext.getInstance("TLS"); + insecureSslContext.init(null, trustAllCerts, new java.security.SecureRandom()); + insecureSslSocketFactory = insecureSslContext.getSocketFactory(); } catch (Exception e) { } @@ -1884,6 +1885,10 @@ private HttpURLConnection getConnectionDirect(Context context, String url, MapFehlende Künstler Original streamen Zum streamen möglichst das Originalformat verwenden. + Erlaube unsichere Verbindungen + Erlaube HTTP-Verbindungen und ignoriere Warnungen und Fehler bei HTTPS-Verbindungen (nicht empfohlen!) + Die Verbindung zum Server ist unsicher. Unsichere Verbindungen sind in den Einstellungen nicht erlaubt worden. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ea2b4f1a3..d21b9f890 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -690,5 +690,8 @@ One day left of trial period %d days left of trial period + Allow insecure connections + Allow http traffic and ignore warnings and errors with https connections (not recommended!) + The connection to the server is insecure. Insecure connections have not been enabled in the settings.