Author: rob.stryker(a)jboss.com
Date: 2008-03-07 18:15:05 -0500 (Fri, 07 Mar 2008)
New Revision: 6798
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/RequiredCredentialsDialog.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/SecurityFailureHandler.java
Log:
allows saving of credentials so the stop doesnt fail.
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/RequiredCredentialsDialog.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/RequiredCredentialsDialog.java 2008-03-07
23:14:47 UTC (rev 6797)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/RequiredCredentialsDialog.java 2008-03-07
23:15:05 UTC (rev 6798)
@@ -25,10 +25,13 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
@@ -43,7 +46,8 @@
public class RequiredCredentialsDialog extends Dialog {
private String user, pass;
-
+ private boolean save;
+
public RequiredCredentialsDialog(Shell parentShell) {
super(parentShell);
setShellStyle(getShellStyle() | SWT.RESIZE);
@@ -68,31 +72,43 @@
final Text passText = new Text(main, SWT.DEFAULT);
userText.setEditable(true);
passText.setEditable(true);
+ final Button saveCredentials = new Button(main, SWT.CHECK);
-
top.setLayoutData(createFormData(0,5,null,0,0,5,100,-5));
userLabel.setLayoutData(createFormData(top, 10, null, 0, 0,5, 100, -5));
userText.setLayoutData(createFormData(userLabel, 5, null, 0, 0,5, 100, -5));
passLabel.setLayoutData(createFormData(userText, 10, null, 0, 0,5, 100, -5));
passText.setLayoutData(createFormData(passLabel, 5, null, 0, 0,5, 100, -5));
+ saveCredentials.setLayoutData(createFormData(passText, 10, null, 0, 0,5, 100, -5));
top.setText("Your server is throwing a security exception.\nYou should make sure
to open the server\neditor and save the jmx username and password there.");
userLabel.setText(Messages.swf_Username);
passLabel.setText(Messages.swf_Password);
+ saveCredentials.setText("Save these credentials?");
ModifyListener listener = new ModifyListener() {
public void modifyText(ModifyEvent e) {
user = userText.getText();
pass = passText.getText();
+ save = saveCredentials.getSelection();
}
};
+ SelectionListener listener2 = new SelectionListener() {
+ public void widgetDefaultSelected(SelectionEvent e) {
+ widgetSelected(e);
+ }
+ public void widgetSelected(SelectionEvent e) {
+ user = userText.getText();
+ pass = passText.getText();
+ save = saveCredentials.getSelection();
+ }
+ };
userText.addModifyListener(listener);
passText.addModifyListener(listener);
+ saveCredentials.addSelectionListener(listener2);
return c;
}
-
-
private FormData createFormData(Object topStart, int topOffset, Object bottomStart, int
bottomOffset,
Object leftStart, int leftOffset, Object rightStart, int rightOffset) {
FormData data = new FormData();
@@ -133,4 +149,11 @@
public String getPass() {
return pass;
}
+
+ /**
+ * @return whether to save
+ */
+ public boolean getSave() {
+ return save;
+ }
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/SecurityFailureHandler.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/SecurityFailureHandler.java 2008-03-07
23:14:47 UTC (rev 6797)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/launch/SecurityFailureHandler.java 2008-03-07
23:15:05 UTC (rev 6798)
@@ -3,12 +3,17 @@
import java.util.List;
import java.util.Properties;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerWorkingCopy;
import org.jboss.ide.eclipse.as.core.extensions.polling.JMXPoller;
import org.jboss.ide.eclipse.as.core.server.IPollerFailureHandler;
import org.jboss.ide.eclipse.as.core.server.IServerStatePoller;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.core.util.ServerConverter;
import org.jboss.ide.eclipse.as.ui.dialogs.RequiredCredentialsDialog;
/**
@@ -30,6 +35,19 @@
public void run() {
RequiredCredentialsDialog d = new RequiredCredentialsDialog(new Shell());
if( d.open() == Window.OK) {
+ if( d.getSave() ) {
+ IServer server = poller.getServer();
+ IServerWorkingCopy copy = server.createWorkingCopy();
+ JBossServer jbs = ServerConverter.getJBossServer(copy);
+ jbs.setPassword(d.getPass());
+ jbs.setUsername(d.getUser());
+ try {
+ copy.save(false, null);
+ } catch( CoreException ce ) {
+ // TODO log
+ }
+ }
+
Properties p = new Properties();
p.put(JMXPoller.REQUIRED_USER, d.getUser());
p.put(JMXPoller.REQUIRED_PASS, d.getPass());