Merge "Issue #2180 - handle delete of credentials" into dd_pre_release_2.1
Former-commit-id:b371d6ed2a
[formerly92233a3f3a
[formerly 07a5e7a9826935e7e3e724e648ce931faf0da62e]] Former-commit-id:92233a3f3a
Former-commit-id:b40157ac97
This commit is contained in:
commit
790542df2a
4 changed files with 111 additions and 13 deletions
|
@ -99,6 +99,9 @@ public class DataProviderPasswordComposite extends Composite implements
|
||||||
/** Provider object */
|
/** Provider object */
|
||||||
private Provider provider;
|
private Provider provider;
|
||||||
|
|
||||||
|
/** Remove credentials check box */
|
||||||
|
private Button removeChk;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* 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
|
// Buttons
|
||||||
buttonComp = new ApplyCancelComposite(this, SWT.NONE, this);
|
buttonComp = new ApplyCancelComposite(this, SWT.NONE, this);
|
||||||
|
|
||||||
|
@ -248,6 +267,12 @@ public class DataProviderPasswordComposite extends Composite implements
|
||||||
for (Provider p : providerList) {
|
for (Provider p : providerList) {
|
||||||
providerCombo.add(p.getName());
|
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,
|
resp = (ProviderKeyRequest) RequestRouter.route(req,
|
||||||
RegistryConstants.EBXML_REGISTRY_SERVICE);
|
RegistryConstants.EBXML_REGISTRY_SERVICE);
|
||||||
Connection conn = resp.getProvider().getConnection();
|
Connection conn = resp.getProvider().getConnection();
|
||||||
String userName = conn.getUnencryptedUsername();
|
if (conn != null) {
|
||||||
String passwd = conn.getUnencryptedPassword();
|
String userName = conn.getUnencryptedUsername();
|
||||||
String key = conn.getProviderKey();
|
String passwd = conn.getUnencryptedPassword();
|
||||||
if (userName != null) {
|
String key = conn.getProviderKey();
|
||||||
userTxt.setText(userName);
|
if (userName != null) {
|
||||||
}
|
userTxt.setText(userName);
|
||||||
if (passwd != null) {
|
}
|
||||||
passTxt.setText(passwd);
|
if (passwd != null) {
|
||||||
}
|
passTxt.setText(passwd);
|
||||||
if (key != null) {
|
}
|
||||||
keyTxt.setText(key);
|
if (key != null) {
|
||||||
|
keyTxt.setText(key);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
statusHandler.handle(Priority.PROBLEM,
|
statusHandler.handle(Priority.PROBLEM,
|
||||||
|
@ -312,6 +339,7 @@ public class DataProviderPasswordComposite extends Composite implements
|
||||||
@Override
|
@Override
|
||||||
public boolean apply() {
|
public boolean apply() {
|
||||||
if (validation()) {
|
if (validation()) {
|
||||||
|
|
||||||
ProviderKeyRequest req = new ProviderKeyRequest();
|
ProviderKeyRequest req = new ProviderKeyRequest();
|
||||||
Connection conn = provider.getConnection();
|
Connection conn = provider.getConnection();
|
||||||
conn.setPassword(passTxt.getText());
|
conn.setPassword(passTxt.getText());
|
||||||
|
@ -320,7 +348,11 @@ public class DataProviderPasswordComposite extends Composite implements
|
||||||
conn.setEncryption(getEncryption());
|
conn.setEncryption(getEncryption());
|
||||||
provider.setConnection(conn);
|
provider.setConnection(conn);
|
||||||
req.setProvider(provider);
|
req.setProvider(provider);
|
||||||
req.setRequestType(RequestType.SAVE);
|
if (removeChk.getSelection()) {
|
||||||
|
req.setRequestType(RequestType.DELETE);
|
||||||
|
} else {
|
||||||
|
req.setRequestType(RequestType.SAVE);
|
||||||
|
}
|
||||||
req.setProviderKey(keyTxt.getText());
|
req.setProviderKey(keyTxt.getText());
|
||||||
|
|
||||||
ProviderKeyRequest resp;
|
ProviderKeyRequest resp;
|
||||||
|
@ -342,6 +374,11 @@ public class DataProviderPasswordComposite extends Composite implements
|
||||||
DataDeliveryUtils.showMessage(getShell(), SWT.OK,
|
DataDeliveryUtils.showMessage(getShell(), SWT.OK,
|
||||||
"Change Successful",
|
"Change Successful",
|
||||||
"The username/password has been updated.");
|
"The username/password has been updated.");
|
||||||
|
if (removeChk.getSelection()) {
|
||||||
|
userTxt.setText("");
|
||||||
|
passTxt.setText("");
|
||||||
|
keyTxt.setText("");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return status == Status.SUCCESS;
|
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
|
* Get the encryption object
|
||||||
*
|
*
|
||||||
|
|
|
@ -116,12 +116,15 @@ public class ProviderKeyRequest implements IServerRequest {
|
||||||
public enum RequestType {
|
public enum RequestType {
|
||||||
@XmlEnumValue(RequestType.save)
|
@XmlEnumValue(RequestType.save)
|
||||||
SAVE("SAVE"), @XmlEnumValue(RequestType.retrieve)
|
SAVE("SAVE"), @XmlEnumValue(RequestType.retrieve)
|
||||||
RETRIEVE("RETRIEVE");
|
RETRIEVE("RETRIEVE"), @XmlEnumValue(RequestType.delete)
|
||||||
|
DELETE("DELETE");
|
||||||
|
|
||||||
private static final String save = "SAVE";
|
private static final String save = "SAVE";
|
||||||
|
|
||||||
private static final String retrieve = "RETRIEVE";
|
private static final String retrieve = "RETRIEVE";
|
||||||
|
|
||||||
|
private static final String delete = "DELETE";
|
||||||
|
|
||||||
private final String requestType;
|
private final String requestType;
|
||||||
|
|
||||||
private RequestType(String name) {
|
private RequestType(String name) {
|
||||||
|
|
|
@ -129,6 +129,43 @@ public class ProviderCredentialsUtil {
|
||||||
return creds;
|
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.
|
* Gets the ProviderCredentials object containing the encrytped credentials.
|
||||||
*
|
*
|
||||||
|
|
|
@ -88,6 +88,15 @@ public class ProviderKeyRequestHandler implements
|
||||||
request.setProvider(provider);
|
request.setProvider(provider);
|
||||||
request.setStatus(Status.SUCCESS);
|
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;
|
return request;
|
||||||
|
|
Loading…
Add table
Reference in a new issue