Created
September 22, 2012 19:58
-
-
Save Rovanion/3767624 to your computer and use it in GitHub Desktop.
Remove license check from Subsonic 4.7
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java b/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java | |
index f7031bf..39ee5b4 100644 | |
--- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java | |
+++ b/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java | |
@@ -620,14 +620,11 @@ public class SettingsService { | |
} | |
public boolean isLicenseValid() { | |
- return isLicenseValid(getLicenseEmail(), getLicenseCode()) && licenseValidated; | |
+ return true; | |
} | |
public boolean isLicenseValid(String email, String license) { | |
- if (email == null || license == null) { | |
- return false; | |
- } | |
- return license.equalsIgnoreCase(StringUtil.md5Hex(email.toLowerCase())); | |
+ return true; | |
} | |
public String getDownsamplingCommand() { | |
@@ -1223,33 +1220,7 @@ public class SettingsService { | |
} | |
private void validateLicense() { | |
- String email = getLicenseEmail(); | |
- Date date = getLicenseDate(); | |
- | |
- if (email == null || date == null) { | |
- licenseValidated = false; | |
- return; | |
- } | |
- | |
licenseValidated = true; | |
- | |
- HttpClient client = new DefaultHttpClient(); | |
- HttpConnectionParams.setConnectionTimeout(client.getParams(), 120000); | |
- HttpConnectionParams.setSoTimeout(client.getParams(), 120000); | |
- HttpGet method = new HttpGet("http://subsonic.org/backend/validateLicense.view" + "?email=" + StringUtil.urlEncode(email) + | |
- "&date=" + date.getTime() + "&version=" + versionService.getLocalVersion()); | |
- try { | |
- ResponseHandler<String> responseHandler = new BasicResponseHandler(); | |
- String content = client.execute(method, responseHandler); | |
- licenseValidated = content != null && content.contains("true"); | |
- if (!licenseValidated) { | |
- LOG.warn("License key is not valid."); | |
- } | |
- } catch (Throwable x) { | |
- LOG.warn("Failed to validate license.", x); | |
- } finally { | |
- client.getConnectionManager().shutdown(); | |
- } | |
} | |
public void validateLicenseAsync() { |
How do I patch this? Is it possible to patch it without root?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for this ultramancool. I had donated but my license would not apply correctly, I couldn't wait for a response from the devs/forums so I implemented your solution in a slightly modified way.
In my case, Subsonic is hosted on a Windows Server which has IIS running on port 80 (hosting another app), this means subsonic needs to run on a different port (I used the default 4040). Subsonic expects the /backend/validateLicense.view file to be on a server on port 80. So, when creating your solution, it is necessary to modify the following:
These instructions are written for Windows Server 2012, I believe Server 2008 should be similar if not the same, other Windows servers may differ but I'm sure anyone setting up a Subsonic server can figure it out :)