Merge "Issue #2180 - handle delete of credentials" into dd_pre_release_2.1
Former-commit-id:790542df2a
[formerlyb40157ac97
] [formerly92233a3f3a
] [formerlyb371d6ed2a
[formerly92233a3f3a
[formerly 07a5e7a9826935e7e3e724e648ce931faf0da62e]]] Former-commit-id:b371d6ed2a
Former-commit-id: 23db3332f4764b1371a3d53109a30147412fc922 [formerly94c5782fbd
] Former-commit-id:b2f2a54c29
This commit is contained in:
commit
b22ca1ebe6
4 changed files with 111 additions and 13 deletions
|
@ -99,6 +99,9 @@ public class DataProviderPasswordComposite extends Composite implements
|
|||
/** Provider object */
|
||||
private Provider provider;
|
||||
|
||||
/** Remove credentials check box */
|
||||
private Button removeChk;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
|
@ -228,6 +231,22 @@ public class DataProviderPasswordComposite extends Composite implements
|
|||
}
|
||||
});
|
||||
|
||||
gd = new GridData(SWT.FILL, SWT.FILL, true, true);
|
||||
gd.horizontalSpan = 3;
|
||||
Label sep = new Label(comp, SWT.SEPARATOR | SWT.SHADOW_IN
|
||||
| SWT.HORIZONTAL);
|
||||
sep.setLayoutData(gd);
|
||||
|
||||
removeChk = new Button(comp, SWT.CHECK);
|
||||
removeChk.setText("Remove Credentials");
|
||||
removeChk.setSelection(false);
|
||||
removeChk.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
enableWidgets(!removeChk.getSelection());
|
||||
}
|
||||
});
|
||||
|
||||
// Buttons
|
||||
buttonComp = new ApplyCancelComposite(this, SWT.NONE, this);
|
||||
|
||||
|
@ -248,6 +267,12 @@ public class DataProviderPasswordComposite extends Composite implements
|
|||
for (Provider p : providerList) {
|
||||
providerCombo.add(p.getName());
|
||||
}
|
||||
|
||||
if (providerCombo.getItemCount() > 0) {
|
||||
providerCombo.select(0);
|
||||
handleProviderSelection();
|
||||
checkUserInput();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -286,17 +311,19 @@ public class DataProviderPasswordComposite extends Composite implements
|
|||
resp = (ProviderKeyRequest) RequestRouter.route(req,
|
||||
RegistryConstants.EBXML_REGISTRY_SERVICE);
|
||||
Connection conn = resp.getProvider().getConnection();
|
||||
String userName = conn.getUnencryptedUsername();
|
||||
String passwd = conn.getUnencryptedPassword();
|
||||
String key = conn.getProviderKey();
|
||||
if (userName != null) {
|
||||
userTxt.setText(userName);
|
||||
}
|
||||
if (passwd != null) {
|
||||
passTxt.setText(passwd);
|
||||
}
|
||||
if (key != null) {
|
||||
keyTxt.setText(key);
|
||||
if (conn != null) {
|
||||
String userName = conn.getUnencryptedUsername();
|
||||
String passwd = conn.getUnencryptedPassword();
|
||||
String key = conn.getProviderKey();
|
||||
if (userName != null) {
|
||||
userTxt.setText(userName);
|
||||
}
|
||||
if (passwd != null) {
|
||||
passTxt.setText(passwd);
|
||||
}
|
||||
if (key != null) {
|
||||
keyTxt.setText(key);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
|
@ -312,6 +339,7 @@ public class DataProviderPasswordComposite extends Composite implements
|
|||
@Override
|
||||
public boolean apply() {
|
||||
if (validation()) {
|
||||
|
||||
ProviderKeyRequest req = new ProviderKeyRequest();
|
||||
Connection conn = provider.getConnection();
|
||||
conn.setPassword(passTxt.getText());
|
||||
|
@ -320,7 +348,11 @@ public class DataProviderPasswordComposite extends Composite implements
|
|||
conn.setEncryption(getEncryption());
|
||||
provider.setConnection(conn);
|
||||
req.setProvider(provider);
|
||||
req.setRequestType(RequestType.SAVE);
|
||||
if (removeChk.getSelection()) {
|
||||
req.setRequestType(RequestType.DELETE);
|
||||
} else {
|
||||
req.setRequestType(RequestType.SAVE);
|
||||
}
|
||||
req.setProviderKey(keyTxt.getText());
|
||||
|
||||
ProviderKeyRequest resp;
|
||||
|
@ -342,6 +374,11 @@ public class DataProviderPasswordComposite extends Composite implements
|
|||
DataDeliveryUtils.showMessage(getShell(), SWT.OK,
|
||||
"Change Successful",
|
||||
"The username/password has been updated.");
|
||||
if (removeChk.getSelection()) {
|
||||
userTxt.setText("");
|
||||
passTxt.setText("");
|
||||
keyTxt.setText("");
|
||||
}
|
||||
}
|
||||
|
||||
return status == Status.SUCCESS;
|
||||
|
@ -351,6 +388,18 @@ public class DataProviderPasswordComposite extends Composite implements
|
|||
|
||||
}
|
||||
|
||||
private void enableWidgets(boolean enable) {
|
||||
userTxt.setEnabled(enable);
|
||||
passTxt.setEnabled(enable);
|
||||
keyTxt.setEnabled(enable);
|
||||
|
||||
if (!enable) {
|
||||
buttonComp.enableButtons(true);
|
||||
} else {
|
||||
checkUserInput();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the encryption object
|
||||
*
|
||||
|
|
|
@ -116,12 +116,15 @@ public class ProviderKeyRequest implements IServerRequest {
|
|||
public enum RequestType {
|
||||
@XmlEnumValue(RequestType.save)
|
||||
SAVE("SAVE"), @XmlEnumValue(RequestType.retrieve)
|
||||
RETRIEVE("RETRIEVE");
|
||||
RETRIEVE("RETRIEVE"), @XmlEnumValue(RequestType.delete)
|
||||
DELETE("DELETE");
|
||||
|
||||
private static final String save = "SAVE";
|
||||
|
||||
private static final String retrieve = "RETRIEVE";
|
||||
|
||||
private static final String delete = "DELETE";
|
||||
|
||||
private final String requestType;
|
||||
|
||||
private RequestType(String name) {
|
||||
|
|
|
@ -129,6 +129,43 @@ public class ProviderCredentialsUtil {
|
|||
return creds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes the connection for the provider.
|
||||
*
|
||||
* @param creds
|
||||
* ProviderCredentials object
|
||||
*
|
||||
* @return ProviderCredentials object with status and message set
|
||||
*/
|
||||
public static ProviderCredentials deleteCredentials(
|
||||
ProviderCredentials creds) {
|
||||
String providerName = creds.getProvider().getName();
|
||||
IPathManager pm = PathManagerFactory.getPathManager();
|
||||
LocalizationContext lc = pm.getContext(LocalizationType.COMMON_STATIC,
|
||||
LocalizationLevel.SITE);
|
||||
|
||||
String connectionFileName = CONNECTION_FILE_PREFIX + providerName
|
||||
+ CONNECTION_FILE_SUFFIX;
|
||||
try {
|
||||
LocalizationFile lf = pm
|
||||
.getLocalizationFile(lc, connectionFileName);
|
||||
lf.delete();
|
||||
|
||||
ProviderKeyDao pkd = new ProviderKeyDao();
|
||||
ProviderKeyRecord pkr = pkd.queryByProvider(providerName);
|
||||
if (pkr != null) {
|
||||
pkd.delete(pkr);
|
||||
}
|
||||
creds.setStatus(Status.SUCCESS);
|
||||
} catch (Exception e) {
|
||||
statusHandler.handle(Priority.ERROR,
|
||||
"Couldn't delete encrypted Connection!", e);
|
||||
creds.setStatus(Status.FAILURE);
|
||||
creds.setMessage("Error deleting encrypted connection. See server log for error details.");
|
||||
}
|
||||
return creds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ProviderCredentials object containing the encrytped credentials.
|
||||
*
|
||||
|
|
|
@ -88,6 +88,15 @@ public class ProviderKeyRequestHandler implements
|
|||
request.setProvider(provider);
|
||||
request.setStatus(Status.SUCCESS);
|
||||
}
|
||||
} else if (request.getRequestType() == RequestType.DELETE) {
|
||||
ProviderCredentials creds = new ProviderCredentials(
|
||||
request.getProvider(), request.getProviderKey());
|
||||
creds = ProviderCredentialsUtil.deleteCredentials(creds);
|
||||
|
||||
request.setStatus(creds.getStatus());
|
||||
if (creds.getStatus() == Status.FAILURE) {
|
||||
request.setMessage(creds.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
return request;
|
||||
|
|
Loading…
Add table
Reference in a new issue