1 19 package org.openharmonise.him.actions.system; 20 21 import java.awt.event.*; 22 import java.net.*; 23 import java.rmi.*; 24 25 import javax.swing.*; 26 import javax.xml.rpc.*; 27 28 import org.openharmonise.him.*; 29 import org.openharmonise.him.actions.*; 30 import org.openharmonise.him.authentication.gui.*; 31 import org.openharmonise.him.context.StateHandler; 32 import org.openharmonise.him.harmonise.*; 33 import org.openharmonise.him.window.messages.*; 34 import org.openharmonise.vfs.*; 35 import org.openharmonise.vfs.context.*; 36 import org.openharmonise.vfs.gui.*; 37 import org.openharmonise.vfs.servers.*; 38 import org.openharmonise.webdav.client.*; 39 40 41 48 public class ActionChangeMyPassword 49 extends AbstractHIMAction 50 implements HIMAction { 51 52 55 public ActionChangeMyPassword() { 56 super(); 57 } 58 59 62 public ActionChangeMyPassword(VirtualFile vfFile) { 63 super(vfFile); 64 } 65 66 69 public void actionPerformed(ActionEvent arg0) { 70 boolean bWorked = this.changePassword("Change your password."); 71 if(bWorked) { 72 MessageHandler.getInstance().fireMessageEvent("Your password has been changed.", MessageHandler.TYPE_CONFIRM); 73 } else { 74 MessageHandler.getInstance().fireMessageEvent("Your password has not been changed.", MessageHandler.TYPE_ERROR); 75 } 76 } 77 78 81 public String getText() { 82 return "Change my password"; 83 } 84 85 88 public String getToolTip() { 89 return "Change the password you use to login"; 90 } 91 92 95 public Icon getIcon() { 96 return IconManager.getInstance().getIcon("16-blank.gif"); 97 } 98 99 102 public String getMnemonic() { 103 return "M"; 104 } 105 106 109 public String getDescription() { 110 return this.getToolTip(); 111 } 112 113 116 public int getAcceleratorKeycode() { 117 return 0; 118 } 119 120 123 public int getAcceleratorMask() { 124 return 0; 125 } 126 127 133 private boolean changePassword(String sMessage) { 134 boolean bWorked = false; 135 136 Server server = ServerList.getInstance().getHarmoniseServer(); 137 138 URI uri = server.getURI(); 139 140 String sURI = uri.getScheme() + "://" + uri.getHost() + ":" + uri.getPort() + "/webdav/services/HarmoniseService"; 141 URL url = null; 142 try { 143 url = new URL(sURI); 144 } catch (MalformedURLException e2) { 145 e2.printStackTrace(); 146 System.exit(1); 147 } 148 149 WebDAVFileSystem m_wdvfs = (WebDAVFileSystem) server.getVFS(); 150 151 JFrame tempFrame = new JFrame(); 152 tempFrame.setIconImage( ((ImageIcon)IconManager.getInstance().getIcon("32-sim-logo.gif")).getImage() ); 153 ChangePasswordDialog dialog = new ChangePasswordDialog(tempFrame); 154 dialog.setUsername(m_wdvfs.getAuthentication().getUsername()); 155 dialog.setPassword(m_wdvfs.getAuthentication().getPassword()); 156 if(sMessage!=null && !sMessage.equals("")) { 157 dialog.setInformationText(sMessage); 158 } 159 160 dialog.show(); 161 162 String sNewPassword = dialog.getNewPassword(); 163 if(!sNewPassword.equals("")) { 164 165 try { 166 int nRetn = -1; 167 StateHandler.getInstance().addWait("CHANGE_MY_PASSWORD"); 168 try { 169 nRetn = UserConfigClient.setPassword(url, dialog.getUsername(), dialog.getPassword(), dialog.getUsername(), dialog.getNewPassword()); 170 } catch(Exception e) { 171 throw e; 172 } finally { 173 StateHandler.getInstance().removeWait("CHANGE_MY_PASSWORD"); 174 } 175 176 if(nRetn==UserConfigClient.CODE_AUTHENTICATION_FAIL) { 177 this.changePassword("Your current username/password information was incorrect"); 178 } else if(nRetn==UserConfigClient.CODE_INVALID_LENGTH) { 179 this.changePassword("Your new password is not long enough"); 180 } else if(nRetn==UserConfigClient.CODE_NO_ALPHA_CHAR) { 181 this.changePassword("Your new password must contain at least one letter"); 182 } else if(nRetn==UserConfigClient.CODE_NO_CASE_MIX) { 183 this.changePassword("Your new password must contain mixed case letters"); 184 } else if(nRetn==UserConfigClient.CODE_NO_NUM_CHAR) { 185 this.changePassword("Your new password must contain at least one number"); 186 } else if(nRetn==UserConfigClient.CODE_PWD_REPEAT) { 187 this.changePassword("That password has been used too recently"); 188 } else if(nRetn==UserConfigClient.CODE_SUCCESS) { 189 if(m_wdvfs.checkLoginDetails("/webdav", dialog.getUsername(), dialog.getNewPassword())) { 190 m_wdvfs.changeLoginDetails(dialog.getUsername(), sNewPassword); 191 bWorked = true; 192 } 193 } 194 } catch (RemoteException e) { 195 e.printStackTrace(); 196 } catch (ServiceException e) { 197 e.printStackTrace(); 198 } catch(Exception e) { 199 e.printStackTrace(); 200 } 201 } 202 203 return bWorked; 204 } 205 206 } 207 | Popular Tags |