]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/dialogs/ChangePasswordDialog.java
Update license headers
[lgpl/argeo-commons.git] / security / plugins / org.argeo.security.ui / src / main / java / org / argeo / security / ui / dialogs / ChangePasswordDialog.java
index 21b37cb821fba4ae2a9f001e52a0a037d7f7bb43..ba5fe4d78ddc00c0f17f730eff8202031cece25e 100644 (file)
@@ -1,7 +1,22 @@
+/*
+ * 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.security.ui.dialogs;
 
 import org.argeo.ArgeoException;
-import org.argeo.security.CurrentUserService;
+import org.argeo.eclipse.ui.ErrorFeedback;
 import org.eclipse.jface.dialogs.IMessageProvider;
 import org.eclipse.jface.dialogs.TitleAreaDialog;
 import org.eclipse.swt.SWT;
@@ -13,16 +28,17 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
+import org.springframework.security.userdetails.UserDetailsManager;
 
 /** Dialog to change the current user password */
 public class ChangePasswordDialog extends TitleAreaDialog {
        private Text currentPassword, newPassword1, newPassword2;
-       private CurrentUserService securityService;
+       private UserDetailsManager userDetailsManager;
 
        public ChangePasswordDialog(Shell parentShell,
-                       CurrentUserService securityService) {
+                       UserDetailsManager securityService) {
                super(parentShell);
-               this.securityService = securityService;
+               this.userDetailsManager = securityService;
        }
 
        protected Point getInitialSize() {
@@ -48,9 +64,13 @@ public class ChangePasswordDialog extends TitleAreaDialog {
        protected void okPressed() {
                if (!newPassword1.getText().equals(newPassword2.getText()))
                        throw new ArgeoException("Passwords are different");
-               securityService.updateCurrentUserPassword(currentPassword.getText(),
-                               newPassword1.getText());
-               close();
+               try {
+                       userDetailsManager.changePassword(currentPassword.getText(),
+                                       newPassword1.getText());
+                       close();
+               } catch (Exception e) {
+                       ErrorFeedback.show("Cannot change password", e);
+               }
        }
 
        /** Creates label and password. */