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:
Galen Abell
2018-11-07 17:28:25 -05:00
parent 97ab5a6871
commit 2d14ef1b6f
10 changed files with 362 additions and 45 deletions

View File

@@ -42,7 +42,7 @@ public class WebSocketService extends Service {
super.onCreate();
settings = new Settings(this);
missingMessageUtil =
new MissedMessageUtil(ClientFactory.clientToken(settings.url(), settings.token()));
new MissedMessageUtil(ClientFactory.clientToken(settings.url(), settings.validateSSL(), settings.cert(), settings.token()));
Log.i("Create " + getClass().getSimpleName());
}
@@ -79,7 +79,7 @@ public class WebSocketService extends Service {
}
connection =
new WebSocketConnection(settings.url(), settings.token())
new WebSocketConnection(settings.url(), settings.validateSSL(), settings.cert(), settings.token())
.onOpen(this::onOpen)
.onClose(() -> foreground(getString(R.string.websocket_closed)))
.onBadRequest(this::onBadRequest)