Added SSL Validation Override and CA Selection
- Added fields to login page to a) disable ssl validation or b) select a custom Certificate Authority certificate to use with the server. - Changed visibility of widgets on login page from INVISIBLE to GONE so they don't take up space while hidden (since this was causing weird spacing issues with the new fields). - Added state to settings to store ssl validation choice or certificate data. - Added fields to various HTTP methods to disable ssl validation or set valid certificate authority if either setting is enabled.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.github.gotify.api;
|
||||
|
||||
import com.github.gotify.Settings;
|
||||
import com.github.gotify.Utils;
|
||||
import com.github.gotify.client.ApiClient;
|
||||
import com.github.gotify.client.api.UserApi;
|
||||
import com.github.gotify.client.api.VersionApi;
|
||||
@@ -8,14 +9,16 @@ import com.github.gotify.client.auth.ApiKeyAuth;
|
||||
import com.github.gotify.client.auth.HttpBasicAuth;
|
||||
|
||||
public class ClientFactory {
|
||||
public static ApiClient unauthorized(String baseUrl) {
|
||||
public static ApiClient unauthorized(String baseUrl, boolean validateSSL, String cert) {
|
||||
ApiClient client = new ApiClient();
|
||||
client.setVerifyingSsl(validateSSL);
|
||||
client.setSslCaCert(Utils.stringToInputStream(cert));
|
||||
client.setBasePath(baseUrl);
|
||||
return client;
|
||||
}
|
||||
|
||||
public static ApiClient basicAuth(String baseUrl, String username, String password) {
|
||||
ApiClient client = unauthorized(baseUrl);
|
||||
public static ApiClient basicAuth(String baseUrl, boolean validateSSL, String cert, String username, String password) {
|
||||
ApiClient client = unauthorized(baseUrl, validateSSL, cert);
|
||||
HttpBasicAuth auth = (HttpBasicAuth) client.getAuthentication("basicAuth");
|
||||
auth.setUsername(username);
|
||||
auth.setPassword(password);
|
||||
@@ -23,18 +26,18 @@ public class ClientFactory {
|
||||
return client;
|
||||
}
|
||||
|
||||
public static ApiClient clientToken(String baseUrl, String token) {
|
||||
ApiClient client = unauthorized(baseUrl);
|
||||
public static ApiClient clientToken(String baseUrl, boolean validateSSL, String cert, String token) {
|
||||
ApiClient client = unauthorized(baseUrl, validateSSL, cert);
|
||||
ApiKeyAuth tokenAuth = (ApiKeyAuth) client.getAuthentication("clientTokenHeader");
|
||||
tokenAuth.setApiKey(token);
|
||||
return client;
|
||||
}
|
||||
|
||||
public static VersionApi versionApi(String baseUrl) {
|
||||
return new VersionApi(unauthorized(baseUrl));
|
||||
public static VersionApi versionApi(String baseUrl, boolean validateSSL, String cert) {
|
||||
return new VersionApi(unauthorized(baseUrl, validateSSL, cert));
|
||||
}
|
||||
|
||||
public static UserApi userApiWithToken(Settings settings) {
|
||||
return new UserApi(clientToken(settings.url(), settings.token()));
|
||||
return new UserApi(clientToken(settings.url(), settings.validateSSL(), settings.cert(), settings.token()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user