You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2017/07/28 11:23:10 UTC
[4/4] syncope git commit: [SYNCOPE-1175] Fixing token generation
[SYNCOPE-1175] Fixing token generation
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/98ab61e0
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/98ab61e0
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/98ab61e0
Branch: refs/heads/2_0_X
Commit: 98ab61e060a4045720b6d09e1392404ac461b7df
Parents: 0c9f958
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Jul 28 13:21:55 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Jul 28 13:22:58 2017 +0200
----------------------------------------------------------------------
.../resources/UserSelfConfirmPasswordReset.java | 20 +++----------
.../resources/UserSelfPasswordReset.java | 31 +++++---------------
.../app/js/controllers/UserController.js | 14 ++++-----
.../app/js/services/userSelfService.js | 5 ++--
.../resources/app/languages/en/static.json | 6 ++--
.../resources/app/languages/it/static.json | 2 +-
.../core/spring/security/SecureRandomUtils.java | 7 +++++
.../src/test/resources/tests/create.js | 2 +-
.../src/test/resources/tests/edit.js | 1 -
9 files changed, 32 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/98ab61e0/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfConfirmPasswordReset.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfConfirmPasswordReset.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfConfirmPasswordReset.java
index 343ed64..8bb15c2 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfConfirmPasswordReset.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfConfirmPasswordReset.java
@@ -18,8 +18,6 @@
*/
package org.apache.syncope.client.enduser.resources;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.MediaType;
@@ -31,14 +29,14 @@ import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.request.resource.IResource;
@Resource(key = "userSelfConfirmPasswordReset", path = "/api/self/confirmPasswordReset")
-public class UserSelfConfirmPasswordReset extends BaseResource {
+public class UserSelfConfirmPasswordReset extends BaseUserSelfResource {
private static final long serialVersionUID = -2721621682300247583L;
@Override
protected ResourceResponse newResourceResponse(final IResource.Attributes attributes) {
ResourceResponse response = new AbstractResource.ResourceResponse();
- response.setContentType(MediaType.APPLICATION_JSON);
+ response.setContentType(MediaType.TEXT_PLAIN);
try {
HttpServletRequest request = (HttpServletRequest) attributes.getRequest().getContainerRequest();
if (!xsrfCheck(request)) {
@@ -61,18 +59,8 @@ public class UserSelfConfirmPasswordReset extends BaseResource {
SyncopeEnduserSession.get().getService(UserSelfService.class).
confirmPasswordReset(token, parameters.get("newPassword")[0]);
- final String responseMessage = new StringBuilder().append("Password changed correctly").toString();
-
- response.setTextEncoding(StandardCharsets.UTF_8.name());
- response.setWriteCallback(new WriteCallback() {
-
- @Override
- public void writeData(final Attributes attributes) throws IOException {
- attributes.getResponse().write(responseMessage);
- }
- });
-
- response.setStatusCode(Response.Status.OK.getStatusCode());
+ buildResponse(response, Response.Status.OK.getStatusCode(),
+ "Password successfully updated");
} catch (final Exception e) {
LOG.error("Error while updating user", e);
response.setError(Response.Status.BAD_REQUEST.getStatusCode(), new StringBuilder()
http://git-wip-us.apache.org/repos/asf/syncope/blob/98ab61e0/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfPasswordReset.java
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfPasswordReset.java b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfPasswordReset.java
index f97d348..77408a6 100644
--- a/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfPasswordReset.java
+++ b/client/enduser/src/main/java/org/apache/syncope/client/enduser/resources/UserSelfPasswordReset.java
@@ -18,8 +18,6 @@
*/
package org.apache.syncope.client.enduser.resources;
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.MediaType;
@@ -33,14 +31,15 @@ import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.request.resource.IResource;
@Resource(key = "userSelfPasswordReset", path = "/api/self/requestPasswordReset")
-public class UserSelfPasswordReset extends BaseResource {
+public class UserSelfPasswordReset extends BaseUserSelfResource {
private static final long serialVersionUID = -2721621682300247583L;
@Override
protected ResourceResponse newResourceResponse(final IResource.Attributes attributes) {
ResourceResponse response = new AbstractResource.ResourceResponse();
- response.setContentType(MediaType.APPLICATION_JSON);
+ response.setContentType(MediaType.TEXT_PLAIN);
+ String[] usernameParam = { "<unknown>" };
try {
HttpServletRequest request = (HttpServletRequest) attributes.getRequest().getContainerRequest();
if (!xsrfCheck(request)) {
@@ -50,7 +49,7 @@ public class UserSelfPasswordReset extends BaseResource {
}
Map<String, String[]> parameters = request.getParameterMap();
- String[] usernameParam = parameters.get("username");
+ usernameParam = parameters.get("username");
if (ArrayUtils.isEmpty(usernameParam)) {
throw new Exception("A valid username should be provided");
}
@@ -74,28 +73,12 @@ public class UserSelfPasswordReset extends BaseResource {
SyncopeEnduserSession.get().getService(UserSelfService.class).
requestPasswordReset(usernameParam[0], null);
}
- final String responseMessage = new StringBuilder().
- append("Password reset request sent for user ").append(usernameParam[0]).toString();
-
- response.setTextEncoding(StandardCharsets.UTF_8.name());
- response.setWriteCallback(new WriteCallback() {
-
- @Override
- public void writeData(final Attributes attributes) throws IOException {
- attributes.getResponse().write(responseMessage);
- }
- });
-
- response.setStatusCode(Response.Status.OK.getStatusCode());
} catch (final Exception e) {
LOG.error("Error while updating user", e);
- response.setError(Response.Status.BAD_REQUEST.getStatusCode(),
- new StringBuilder().
- append("ErrorMessage{{ ").
- append(e.getMessage()).
- append(" }}").
- toString());
}
+
+ buildResponse(response, Response.Status.OK.getStatusCode(),
+ "Password reset request sent for user " + usernameParam[0]);
return response;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/98ab61e0/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js b/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
index 1afc42c..cfc57ed 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
+++ b/client/enduser/src/main/resources/META-INF/resources/app/js/controllers/UserController.js
@@ -446,8 +446,7 @@ angular.module("self").controller("UserController", ['$scope', '$rootScope', '$l
$scope.retrieveSecurityQuestion = function (user) {
if ($rootScope.pwdResetRequiringSecurityQuestions) {
if (user && user.username && user.username.length) {
- return SecurityQuestionService.
- getSecurityQuestionByUser(user.username).then(function (data) {
+ return SecurityQuestionService.getSecurityQuestionByUser(user.username).then(function (data) {
$scope.userSecurityQuestion = data.content;
}, function (response) {
var errorMessage;
@@ -467,13 +466,15 @@ angular.module("self").controller("UserController", ['$scope', '$rootScope', '$l
$scope.resetPassword = function (user) {
if (user && user.username) {
- $scope.retrieveSecurityQuestion(user);
UserSelfService.passwordReset(user, $scope.captchaInput.value).then(function (data) {
- console.info("User " + $scope.user.username);
$rootScope.currentUser = $scope.user.username;
$rootScope.currentOp = "PASSWORD_UPDATED";
$translate.use($scope.languages.selectedLanguage.code);
- $state.go('success');
+ $scope.success({successMessage: $filter('translate')(["USER"]).USER
+ + " "
+ + $scope.user.username
+ + " "
+ + $filter('translate')(["SUCCESSFULLY_UPDATED"]).SUCCESSFULLY_UPDATED});
}, function (response) {
var errorMessage;
// parse error response
@@ -499,9 +500,8 @@ angular.module("self").controller("UserController", ['$scope', '$rootScope', '$l
var token = $location.search().token;
if (user && user.password && token) {
UserSelfService.confirmPasswordReset({"newPassword": user.password, "token": token}).then(function (data) {
- $scope.showSuccess(data, $scope.notification);
$translate.use($scope.languages.selectedLanguage.code);
- $location.path('/self');
+ $scope.success({successMessage: $filter('translate')(["PASSWORD_UPDATED"]).PASSWORD_UPDATED});
}, function (response) {
var errorMessage;
// parse error response
http://git-wip-us.apache.org/repos/asf/syncope/blob/98ab61e0/client/enduser/src/main/resources/META-INF/resources/app/js/services/userSelfService.js
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/js/services/userSelfService.js b/client/enduser/src/main/resources/META-INF/resources/app/js/services/userSelfService.js
index 9f9f444..39fd3a2 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/js/services/userSelfService.js
+++ b/client/enduser/src/main/resources/META-INF/resources/app/js/services/userSelfService.js
@@ -40,8 +40,7 @@ angular.module('login')
headers: {'captcha': captcha}
})
.then(function (response) {
- var username = response;
- return username;
+ return response;
}, function (response) {
console.error("Something went wrong during user self creation, exit with status: ", response);
return $q.reject(response.data || response.statusText);
@@ -54,7 +53,7 @@ angular.module('login')
headers: {'captcha': captcha}
})
.then(function (response) {
- var username = response;
+ return response;
}, function (response) {
console.error("Something went wrong during user self update, exit with status: ", response);
return $q.reject(response.data || response.statusText);
http://git-wip-us.apache.org/repos/asf/syncope/blob/98ab61e0/client/enduser/src/main/resources/META-INF/resources/app/languages/en/static.json
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/languages/en/static.json b/client/enduser/src/main/resources/META-INF/resources/app/languages/en/static.json
index 076bd6c..90e5e19 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/languages/en/static.json
+++ b/client/enduser/src/main/resources/META-INF/resources/app/languages/en/static.json
@@ -47,9 +47,9 @@
"RESOURCES_PLACEHOLDER": "Click to select resources...",
"REALM": "Realm",
"NEWUSER": "New User",
- "SUCCESSFULLY_CREATED": "succesfully created",
- "SUCCESSFULLY_UPDATED": "succesfully updated",
- "PASSWORD_UPDATED": ": password succesfully reset",
+ "SUCCESSFULLY_CREATED": "successfully created",
+ "SUCCESSFULLY_UPDATED": "successfully updated",
+ "PASSWORD_UPDATED": "Password successfully reset",
"GOBACKHOME": "Click on this link to go back to the home page",
"CONFIRM_REMOVE": "This will remove the current value. Continue?",
"own": "Own"
http://git-wip-us.apache.org/repos/asf/syncope/blob/98ab61e0/client/enduser/src/main/resources/META-INF/resources/app/languages/it/static.json
----------------------------------------------------------------------
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/languages/it/static.json b/client/enduser/src/main/resources/META-INF/resources/app/languages/it/static.json
index d5c7038..e227a05 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/languages/it/static.json
+++ b/client/enduser/src/main/resources/META-INF/resources/app/languages/it/static.json
@@ -49,7 +49,7 @@
"REALM": "Realm",
"SUCCESSFULLY_CREATED": "creato con successo",
"SUCCESSFULLY_UPDATED": "aggiornato con successo",
- "PASSWORD_UPDATED": ": password resettata con successo",
+ "PASSWORD_UPDATED": "Password resettata con successo",
"GOBACKHOME": "Clicca su questo link per tornare alla home page",
"CONFIRM_REMOVE": "Questa azione rimuoverĂ il valore corrente. Continuare?",
"own": "Propri"
http://git-wip-us.apache.org/repos/asf/syncope/blob/98ab61e0/core/spring/src/main/java/org/apache/syncope/core/spring/security/SecureRandomUtils.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/SecureRandomUtils.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/SecureRandomUtils.java
index 0e9e0ff..e68cb6b 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/SecureRandomUtils.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/SecureRandomUtils.java
@@ -26,6 +26,13 @@ public final class SecureRandomUtils {
private static final RandomStringGenerator FOR_PASSWORD = new RandomStringGenerator.Builder().
usingRandom(new SecureTextRandomProvider()).
+ filteredBy(new CharacterPredicate() {
+
+ @Override
+ public boolean test(final int codePoint) {
+ return (codePoint >= 'a' && codePoint <= 'z') || (codePoint >= '0' && codePoint <= '9');
+ }
+ }).
build();
private static final RandomStringGenerator FOR_LETTERS = new RandomStringGenerator.Builder().
http://git-wip-us.apache.org/repos/asf/syncope/blob/98ab61e0/fit/enduser-reference/src/test/resources/tests/create.js
----------------------------------------------------------------------
diff --git a/fit/enduser-reference/src/test/resources/tests/create.js b/fit/enduser-reference/src/test/resources/tests/create.js
index b1f049f..bdf06e1 100644
--- a/fit/enduser-reference/src/test/resources/tests/create.js
+++ b/fit/enduser-reference/src/test/resources/tests/create.js
@@ -47,7 +47,7 @@ describe('syncope enduser user create', function () {
selectedGroup.sendKeys('root');
element.all(by.css('.ui-select-choices-row-inner span')).first().click();
abstract.waitSpinner();
- element.all(by.id('next')).first().click();
+ abstract.doNext();
//plainSchemas
abstract.waitSpinner();
http://git-wip-us.apache.org/repos/asf/syncope/blob/98ab61e0/fit/enduser-reference/src/test/resources/tests/edit.js
----------------------------------------------------------------------
diff --git a/fit/enduser-reference/src/test/resources/tests/edit.js b/fit/enduser-reference/src/test/resources/tests/edit.js
index 2da5240..9fa3f95 100644
--- a/fit/enduser-reference/src/test/resources/tests/edit.js
+++ b/fit/enduser-reference/src/test/resources/tests/edit.js
@@ -54,7 +54,6 @@ describe('syncope enduser user edit', function () {
browser.wait(element(by.model('user.realm')).isPresent());
element(by.model('user.realm')).click();
element.all(by.repeater('realm in availableRealms')).get(0).click();
- browser.wait(element(by.model('dynamicForm.selectedGroups')).isPresent());
var group = element(by.model('dynamicForm.selectedGroups'));
var selectedGroup = group.element(by.css('.ui-select-search'));
group.click();