--- /dev/null
+/*
+ * Copyright (C) 2007-2012 Mathieu Baudier
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.argeo.slc.jsch;
+
+import java.awt.Container;
+import java.awt.GridLayout;
+import java.awt.Panel;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Arrays;
+
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+
+
+public class SwingUserInfo extends SimpleUserInfo {
+
+ private Boolean alwaysPrompt = false;
+
+ public boolean promptPassphrase(String message) {
+ if (passphrase != null)
+ return true;
+
+ if (!alwaysPrompt && passphraseSafe != null)
+ return true;
+
+ PasswordDialog dialog = new PasswordDialog(message) {
+ private static final long serialVersionUID = 3266299327166418364L;
+
+ @Override
+ protected void useCredentials(char[] password) {
+ passphraseSafe = new char[password.length];
+ System.arraycopy(password, 0, passphraseSafe, 0,
+ password.length);
+ // passphraseSafe = Arrays.copyOf(password, password.length);
+ }
+ };
+ dialog.setVisible(true);
+ return dialog.getWasProvided();
+ }
+
+ public boolean promptPassword(String message) {
+ if (password != null)
+ return true;
+
+ if (!alwaysPrompt && passwordSafe != null)
+ return true;
+
+ PasswordDialog dialog = new PasswordDialog(message) {
+ private static final long serialVersionUID = 3266299327166418364L;
+
+ @Override
+ protected void useCredentials(char[] password) {
+ // passwordSafe = Arrays.copyOf(password, password.length);
+ passwordSafe = new char[password.length];
+ System.arraycopy(password, 0, passwordSafe, 0, password.length);
+ }
+ };
+ dialog.setVisible(true);
+ return dialog.getWasProvided();
+ }
+
+ public void setAlwaysPrompt(Boolean alwaysPrompt) {
+ this.alwaysPrompt = alwaysPrompt;
+ }
+
+ protected static class PasswordDialog extends JDialog implements
+ ActionListener {
+ private static final long serialVersionUID = 3399155607980846207L;
+
+ private static final String OK = "ok";
+
+ private JPasswordField password = new JPasswordField("", 10);
+
+ private JButton okButton;
+ private JButton cancelButton;
+
+ private Boolean wasProvided = false;
+
+ public PasswordDialog(String title) {
+ setTitle(title);
+ setModal(true);
+ setLocationRelativeTo(null);
+ setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+
+ JPanel p1 = new JPanel(new GridLayout(1, 2, 3, 3));
+ p1.add(new JLabel("Password"));
+ password.setActionCommand(OK);
+ password.addActionListener(this);
+ p1.add(password);
+ add("Center", p1);
+
+ Panel p2 = new Panel();
+ okButton = addButton(p2, "OK");
+ okButton.setActionCommand(OK);
+ cancelButton = addButton(p2, "Cancel");
+ add("South", p2);
+ setSize(240, 120);
+
+ pack();
+ }
+
+ /** To be overridden */
+ protected void useCredentials(char[] password) {
+ // does nothing
+ }
+
+ private JButton addButton(Container c, String name) {
+ JButton button = new JButton(name);
+ button.addActionListener(this);
+ c.add(button);
+ return button;
+ }
+
+ public final void actionPerformed(ActionEvent evt) {
+ Object source = evt.getSource();
+ if (source == okButton || evt.getActionCommand().equals(OK)) {
+ char[] p = password.getPassword();
+ useCredentials(p);
+ wasProvided = true;
+ Arrays.fill(p, '0');
+ cleanUp();
+ } else if (source == cancelButton)
+ cleanUp();
+ }
+
+ private void cleanUp() {
+ password.setText("");
+ dispose();
+ }
+
+ public Boolean getWasProvided() {
+ return wasProvided;
+ }
+
+ }
+
+}
+++ /dev/null
-/*
- * Copyright (C) 2007-2012 Mathieu Baudier
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.argeo.slc.jsch.swing;
-
-import java.awt.Container;
-import java.awt.GridLayout;
-import java.awt.Panel;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.Arrays;
-
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JPasswordField;
-
-import org.argeo.slc.jsch.SimpleUserInfo;
-
-public class SwingUserInfo extends SimpleUserInfo {
-
- private Boolean alwaysPrompt = false;
-
- public boolean promptPassphrase(String message) {
- if (passphrase != null)
- return true;
-
- if (!alwaysPrompt && passphraseSafe != null)
- return true;
-
- PasswordDialog dialog = new PasswordDialog(message) {
- private static final long serialVersionUID = 3266299327166418364L;
-
- @Override
- protected void useCredentials(char[] password) {
- passphraseSafe = new char[password.length];
- System.arraycopy(password, 0, passphraseSafe, 0,
- password.length);
- // passphraseSafe = Arrays.copyOf(password, password.length);
- }
- };
- dialog.setVisible(true);
- return dialog.getWasProvided();
- }
-
- public boolean promptPassword(String message) {
- if (password != null)
- return true;
-
- if (!alwaysPrompt && passwordSafe != null)
- return true;
-
- PasswordDialog dialog = new PasswordDialog(message) {
- private static final long serialVersionUID = 3266299327166418364L;
-
- @Override
- protected void useCredentials(char[] password) {
- // passwordSafe = Arrays.copyOf(password, password.length);
- passwordSafe = new char[password.length];
- System.arraycopy(password, 0, passwordSafe, 0, password.length);
- }
- };
- dialog.setVisible(true);
- return dialog.getWasProvided();
- }
-
- public void setAlwaysPrompt(Boolean alwaysPrompt) {
- this.alwaysPrompt = alwaysPrompt;
- }
-
- protected static class PasswordDialog extends JDialog implements
- ActionListener {
- private static final long serialVersionUID = 3399155607980846207L;
-
- private static final String OK = "ok";
-
- private JPasswordField password = new JPasswordField("", 10);
-
- private JButton okButton;
- private JButton cancelButton;
-
- private Boolean wasProvided = false;
-
- public PasswordDialog(String title) {
- setTitle(title);
- setModal(true);
- setLocationRelativeTo(null);
- setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
-
- JPanel p1 = new JPanel(new GridLayout(1, 2, 3, 3));
- p1.add(new JLabel("Password"));
- password.setActionCommand(OK);
- password.addActionListener(this);
- p1.add(password);
- add("Center", p1);
-
- Panel p2 = new Panel();
- okButton = addButton(p2, "OK");
- okButton.setActionCommand(OK);
- cancelButton = addButton(p2, "Cancel");
- add("South", p2);
- setSize(240, 120);
-
- pack();
- }
-
- /** To be overridden */
- protected void useCredentials(char[] password) {
- // does nothing
- }
-
- private JButton addButton(Container c, String name) {
- JButton button = new JButton(name);
- button.addActionListener(this);
- c.add(button);
- return button;
- }
-
- public final void actionPerformed(ActionEvent evt) {
- Object source = evt.getSource();
- if (source == okButton || evt.getActionCommand().equals(OK)) {
- char[] p = password.getPassword();
- useCredentials(p);
- wasProvided = true;
- Arrays.fill(p, '0');
- cleanUp();
- } else if (source == cancelButton)
- cleanUp();
- }
-
- private void cleanUp() {
- password.setText("");
- dispose();
- }
-
- public Boolean getWasProvided() {
- return wasProvided;
- }
-
- }
-
-}