Skip to content
This repository has been archived by the owner on Feb 1, 2021. It is now read-only.

Add set secret key api #113

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions src/android/CordovaAdalPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,9 @@ public boolean execute(String action, JSONArray args, final CallbackContext call

boolean useBroker = args.getBoolean(0);
return setUseBroker(useBroker);
} else if (action.equals("setSecretKey")) {
String key = args.getString(0);
return setSecretKey(key);
}

return false;
Expand Down Expand Up @@ -276,6 +279,19 @@ private boolean setUseBroker(boolean useBroker) {
return true;
}

private boolean setSecretKey(String key) {
try {
SecretKey secretKey = this.createSecretKey(key);
AuthenticationSettings.INSTANCE.setSecretKey(secretKey.getEncoded());
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK));
} catch (Exception e) {
Log.w("CordovaAdalPlugin", "Unable to create secret: " + e.getMessage());
callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, e.getMessage()));
}

return true;
}

private void requestBrokerPermissions() {

// USE_CREDENTIALS and MANAGE_ACOUNTS are deprecated and not required
Expand Down
16 changes: 16 additions & 0 deletions www/AuthenticationSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,21 @@ module.exports = {
checkArgs('*', 'AuthenticationSettings.setUseBroker', arguments);

return bridge.executeNativeMethod('setUseBroker', [!!useBroker]);
},


/**
* Sets flag to use or skip authentication broker.
* By default, the secret key is generated inside the library
*
* @param {String} key Key to use to generate encryption bytes
*
* @returns {Promise} Promise either fulfilled or rejected with error
*/
setSecretKey: function(secretKey) {

checkArgs('*', 'AuthenticationSettings.setSecretKey', arguments);

return bridge.executeNativeMethod('setSecretKey', [secretKey]);
}
}