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:07 UTC
[1/4] syncope git commit: [SYNCOPE-1175] Fixing token generation
Repository: syncope
Updated Branches:
refs/heads/2_0_X 6fecdc2bc -> 98ab61e06
refs/heads/master c04858494 -> b41675a33
[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/0e4eed03
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/0e4eed03
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/0e4eed03
Branch: refs/heads/master
Commit: 0e4eed03e565107d7aa2801bc892aa099926fd82
Parents: c048584
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:25 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/0e4eed03/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/0e4eed03/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/0e4eed03/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/0e4eed03/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/0e4eed03/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/0e4eed03/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/0e4eed03/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/0e4eed03/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/0e4eed03/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();
[3/4] syncope git commit: [SYNCOPE-1174] More robust conf params'
default value management
Posted by il...@apache.org.
[SYNCOPE-1174] More robust conf params' default value management
This reverts commit 6634daaeebbe95fea9e1c104bc64d7b2e0d45e4b.
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/0c9f9585
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/0c9f9585
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/0c9f9585
Branch: refs/heads/2_0_X
Commit: 0c9f9585ba7a0c0c17eef4be511e8c372f808757
Parents: 6fecdc2
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Jul 28 10:02:10 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Jul 28 13:22:58 2017 +0200
----------------------------------------------------------------------
.../apache/syncope/core/logic/GroupLogic.java | 2 +-
.../apache/syncope/core/logic/ReportLogic.java | 6 +--
.../apache/syncope/core/logic/SyncopeLogic.java | 6 +--
.../apache/syncope/core/logic/TaskLogic.java | 6 +--
.../core/persistence/api/dao/ConfDAO.java | 2 +-
.../core/persistence/jpa/dao/JPAConfDAO.java | 44 ++++----------------
.../api/data/AccessTokenDataBinder.java | 2 +-
.../java/data/AccessTokenDataBinderImpl.java | 15 ++-----
.../java/data/ConnInstanceDataBinderImpl.java | 2 +-
.../java/data/ResourceDataBinderImpl.java | 2 +-
.../java/data/UserDataBinderImpl.java | 9 ++--
.../provisioning/java/job/JobManagerImpl.java | 13 +++---
.../notification/NotificationManagerImpl.java | 2 +-
.../core/spring/security/AuthDataAccessor.java | 2 +-
.../workflow/activiti/task/GenerateToken.java | 4 +-
.../workflow/flowable/task/GenerateToken.java | 4 +-
.../java/DefaultUserWorkflowAdapter.java | 4 +-
.../apache/syncope/core/logic/SAML2SPLogic.java | 2 +-
18 files changed, 43 insertions(+), 84 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
index 52946a6..8098de0 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
@@ -431,7 +431,7 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupPatch> {
Map<String, Object> jobDataMap = jobManager.register(
task,
null,
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
jobDataMap.put(TaskJob.DRY_RUN_JOBDETAIL_KEY, false);
jobDataMap.put(GroupMemberProvisionTaskJobDelegate.GROUP_KEY_JOBDETAIL_KEY, key);
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
index 1f232ad..5243277 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
@@ -97,7 +97,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
jobManager.register(
report,
null,
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
} catch (Exception e) {
LOG.error("While registering quartz job for report " + report.getKey(), e);
@@ -123,7 +123,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
jobManager.register(
report,
null,
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
} catch (Exception e) {
LOG.error("While registering quartz job for report " + report.getKey(), e);
@@ -173,7 +173,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
jobManager.register(
report,
startAt,
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
scheduler.getScheduler().triggerJob(JobNamer.getJobKey(report));
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
index 03635bb..a309214 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
@@ -181,15 +181,15 @@ public class SyncopeLogic extends AbstractLogic<AbstractBaseBean> {
private ImplementationLookup implLookup;
public boolean isSelfRegAllowed() {
- return confDAO.find("selfRegistration.allowed", "false").getValues().get(0).getBooleanValue();
+ return confDAO.find("selfRegistration.allowed", false);
}
public boolean isPwdResetAllowed() {
- return confDAO.find("passwordReset.allowed", "false").getValues().get(0).getBooleanValue();
+ return confDAO.find("passwordReset.allowed", false);
}
public boolean isPwdResetRequiringSecurityQuestions() {
- return confDAO.find("passwordReset.securityQuestion", "true").getValues().get(0).getBooleanValue();
+ return confDAO.find("passwordReset.securityQuestion", true);
}
@PreAuthorize("isAuthenticated()")
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
index a310e47..06e38d2 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
@@ -105,7 +105,7 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
jobManager.register(
task,
task.getStartAt(),
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
} catch (Exception e) {
LOG.error("While registering quartz job for task " + task.getKey(), e);
@@ -133,7 +133,7 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
jobManager.register(
task,
task.getStartAt(),
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
} catch (Exception e) {
LOG.error("While registering quartz job for task " + task.getKey(), e);
@@ -228,7 +228,7 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
Map<String, Object> jobDataMap = jobManager.register(
(SchedTask) task,
startAt,
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
jobDataMap.put(TaskJob.DRY_RUN_JOBDETAIL_KEY, dryRun);
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
index 681ee67..b6fe304 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
@@ -25,7 +25,7 @@ public interface ConfDAO extends DAO<Conf> {
CPlainAttr find(String key);
- CPlainAttr find(String key, String defaultValue);
+ <T> T find(String key, T defaultValue);
Conf get();
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
index 3e4ea2c..3f11fea 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
@@ -19,17 +19,9 @@
package org.apache.syncope.core.persistence.jpa.dao;
import org.apache.syncope.core.persistence.api.dao.ConfDAO;
-import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
-import org.apache.syncope.core.persistence.api.entity.PlainAttrUniqueValue;
-import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
-import org.apache.syncope.core.persistence.api.entity.PlainSchema;
import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr;
import org.apache.syncope.core.persistence.api.entity.conf.Conf;
-import org.apache.syncope.core.persistence.jpa.entity.conf.JPACPlainAttr;
-import org.apache.syncope.core.persistence.jpa.entity.conf.JPACPlainAttrUniqueValue;
-import org.apache.syncope.core.persistence.jpa.entity.conf.JPACPlainAttrValue;
import org.apache.syncope.core.persistence.jpa.entity.conf.JPAConf;
-import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
@@ -38,17 +30,6 @@ public class JPAConfDAO extends AbstractDAO<Conf> implements ConfDAO {
private static final String KEY = "cd64d66f-6fff-4008-b966-a06b1cc1436d";
- private PlainSchemaDAO schemaDAO;
-
- private PlainSchemaDAO schemaDAO() {
- synchronized (this) {
- if (schemaDAO == null) {
- schemaDAO = ApplicationContextProvider.getApplicationContext().getBean(PlainSchemaDAO.class);
- }
- }
- return schemaDAO;
- }
-
@Override
public Conf get() {
Conf instance = entityManager().find(JPAConf.class, KEY);
@@ -70,28 +51,17 @@ public class JPAConfDAO extends AbstractDAO<Conf> implements ConfDAO {
@Transactional(readOnly = true)
@Override
- public CPlainAttr find(final String key, final String defaultValue) {
+ public <T> T find(final String key, final T defaultValue) {
CPlainAttr result = find(key);
if (result == null) {
- PlainSchema schema = schemaDAO().find(key);
- if (schema != null) {
- JPACPlainAttr newAttr = new JPACPlainAttr();
- newAttr.setSchema(schema);
-
- PlainAttrValue attrValue;
- if (newAttr.getSchema().isUniqueConstraint()) {
- attrValue = new JPACPlainAttrUniqueValue();
- ((PlainAttrUniqueValue) attrValue).setSchema(newAttr.getSchema());
- } else {
- attrValue = new JPACPlainAttrValue();
- }
- newAttr.add(defaultValue, attrValue);
-
- result = newAttr;
- }
+ return defaultValue;
}
- return result;
+ return result.getUniqueValue() == null
+ ? result.getValues().isEmpty()
+ ? null
+ : result.getValues().get(0).<T>getValue()
+ : result.getUniqueValue().<T>getValue();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AccessTokenDataBinder.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AccessTokenDataBinder.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AccessTokenDataBinder.java
index be51926..065f5f7 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AccessTokenDataBinder.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AccessTokenDataBinder.java
@@ -27,7 +27,7 @@ import org.apache.syncope.core.persistence.api.entity.AccessToken;
public interface AccessTokenDataBinder {
- Triple<String, String, Date> generateJWT(String subject, int duration, Map<String, Object> claims);
+ Triple<String, String, Date> generateJWT(String subject, long duration, Map<String, Object> claims);
Pair<String, Date> create(String subject, Map<String, Object> claims, boolean replaceExisting);
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AccessTokenDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AccessTokenDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AccessTokenDataBinderImpl.java
index b415fb2..f30562d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AccessTokenDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AccessTokenDataBinderImpl.java
@@ -38,7 +38,6 @@ import org.apache.syncope.core.persistence.api.dao.AccessTokenDAO;
import org.apache.syncope.core.persistence.api.dao.ConfDAO;
import org.apache.syncope.core.persistence.api.entity.AccessToken;
import org.apache.syncope.core.persistence.api.entity.EntityFactory;
-import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr;
import org.apache.syncope.core.provisioning.api.data.AccessTokenDataBinder;
import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
import org.apache.syncope.core.spring.BeanUtils;
@@ -84,7 +83,7 @@ public class AccessTokenDataBinderImpl implements AccessTokenDataBinder {
@Override
public Triple<String, String, Date> generateJWT(
- final String subject, final int duration, final Map<String, Object> claims) {
+ final String subject, final long duration, final Map<String, Object> claims) {
credentialChecker.checkIsDefaultJWSKeyInUse();
@@ -125,17 +124,9 @@ public class AccessTokenDataBinderImpl implements AccessTokenDataBinder {
}
if (replaceExisting || body == null) {
- int duration = 120;
- CPlainAttr jwtLifetimeMins = confDAO.find("jwt.lifetime.minutes", "120");
- if (jwtLifetimeMins != null) {
- duration = jwtLifetimeMins.getValues().get(0).getLongValue().intValue();
- } else {
- LOG.warn("No schema found for 'jwt.lifetime.minutes'. Using default value of '120'");
- }
-
Triple<String, String, Date> created = generateJWT(
subject,
- duration,
+ confDAO.find("jwt.lifetime.minutes", 120L),
claims);
body = created.getMiddle();
@@ -174,7 +165,7 @@ public class AccessTokenDataBinderImpl implements AccessTokenDataBinder {
credentialChecker.checkIsDefaultJWSKeyInUse();
Date now = new Date();
- int duration = confDAO.find("jwt.lifetime.minutes", "120").getValues().get(0).getLongValue().intValue();
+ long duration = confDAO.find("jwt.lifetime.minutes", 120L);
Date expiry = new Date(now.getTime() + 60L * 1000L * duration);
consumer.getJwtClaims().setExpiryTime(expiry.getTime());
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
index 06a8021..0fc31f7 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
@@ -140,7 +140,7 @@ public class ConnInstanceDataBinderImpl implements ConnInstanceDataBinder {
// 2. ensure the maximum history size is not exceeded
List<ConnInstanceHistoryConf> history = connInstanceHistoryConfDAO.findByEntity(connInstance);
- long maxHistorySize = confDAO.find("connector.conf.history.size", "10").getValues().get(0).getLongValue();
+ long maxHistorySize = confDAO.find("connector.conf.history.size", 10L);
if (maxHistorySize < history.size()) {
// always remove the last item since history was obtained by a query with ORDER BY creation DESC
for (int i = 0; i < history.size() - maxHistorySize; i++) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
index ba6da63..b21a605 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
@@ -127,7 +127,7 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
// 2. ensure the maximum history size is not exceeded
List<ExternalResourceHistoryConf> history = resourceHistoryConfDAO.findByEntity(resource);
- long maxHistorySize = confDAO.find("resource.conf.history.size", "10").getValues().get(0).getLongValue();
+ long maxHistorySize = confDAO.find("resource.conf.history.size", 10L);
if (maxHistorySize < history.size()) {
// always remove the last item since history was obtained by a query with ORDER BY creation DESC
for (int i = 0; i < history.size() - maxHistorySize; i++) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index ed77df4..7c291c0 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -116,7 +116,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
@Transactional(readOnly = true)
@Override
public UserTO returnUserTO(final UserTO userTO) {
- if (!confDAO.find("return.password.value", "false").getValues().get(0).getBooleanValue()) {
+ if (!confDAO.find("return.password.value", false)) {
userTO.setPassword(null);
}
return userTO;
@@ -158,8 +158,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
private void setPassword(final User user, final String password, final SyncopeClientCompositeException scce) {
try {
- String algorithm = confDAO.find(
- "password.cipher.algorithm", CipherAlgorithm.AES.name()).getValues().get(0).getStringValue();
+ String algorithm = confDAO.find("password.cipher.algorithm", CipherAlgorithm.AES.name());
CipherAlgorithm predefined = CipherAlgorithm.valueOf(algorithm);
user.setPassword(password, predefined);
} catch (IllegalArgumentException e) {
@@ -642,8 +641,8 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
@Override
public MembershipTO transform(final Group group) {
MembershipTO membershipTO = new MembershipTO.Builder().
- group(group.getKey(), group.getName()).
- build();
+ group(group.getKey(), group.getName()).
+ build();
return membershipTO;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
index 0b2fba0..1af62c5 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
@@ -30,7 +30,6 @@ import java.util.Set;
import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.TaskType;
@@ -307,16 +306,16 @@ public class JobManagerImpl implements JobManager, SyncopeLoader {
public Pair<String, Long> exec() {
String notificationJobCronExpression = StringUtils.EMPTY;
- CPlainAttr notificationJobCronExp =
- confDAO.find("notificationjob.cronExpression", NotificationJob.DEFAULT_CRON_EXP);
- if (!notificationJobCronExp.getValuesAsStrings().isEmpty()) {
+ CPlainAttr notificationJobCronExp = confDAO.find("notificationjob.cronExpression");
+ if (notificationJobCronExp == null) {
+ notificationJobCronExpression = NotificationJob.DEFAULT_CRON_EXP;
+ } else if (!notificationJobCronExp.getValuesAsStrings().isEmpty()) {
notificationJobCronExpression = notificationJobCronExp.getValuesAsStrings().get(0);
}
- long interruptMaxRetries =
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue();
+ long interruptMaxRetries = confDAO.find("tasks.interruptMaxRetries", 1L);
- return ImmutablePair.of(notificationJobCronExpression, interruptMaxRetries);
+ return Pair.of(notificationJobCronExpression, interruptMaxRetries);
}
});
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
index 1e6f531..5438cee 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
@@ -162,7 +162,7 @@ public class NotificationManagerImpl implements NotificationManager {
@Transactional(readOnly = true)
@Override
public long getMaxRetries() {
- return confDAO.find("notification.maxRetries", "0").getValues().get(0).getLongValue();
+ return confDAO.find("notification.maxRetries", 0L);
}
/**
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
index 4668750..63e1cf1 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
@@ -221,7 +221,7 @@ public class AuthDataAccessor {
boolean userModified = false;
authenticated = AuthDataAccessor.this.authenticate(user, authentication.getCredentials().toString());
if (authenticated) {
- if (confDAO.find("log.lastlogindate", Boolean.toString(true)).getValues().get(0).getBooleanValue()) {
+ if (confDAO.find("log.lastlogindate", true)) {
user.setLastLoginDate(new Date());
userModified = true;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/GenerateToken.java
----------------------------------------------------------------------
diff --git a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/GenerateToken.java b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/GenerateToken.java
index 9ce6941..a5e70e5 100644
--- a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/GenerateToken.java
+++ b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/GenerateToken.java
@@ -36,8 +36,8 @@ public class GenerateToken extends AbstractActivitiServiceTask {
getVariable(executionId, ActivitiUserWorkflowAdapter.USER, User.class);
user.generateToken(
- confDAO.find("token.length", "256").getValues().get(0).getLongValue().intValue(),
- confDAO.find("token.expireTime", "60").getValues().get(0).getLongValue().intValue());
+ confDAO.find("token.length", 256L).intValue(),
+ confDAO.find("token.expireTime", 60L).intValue());
engine.getRuntimeService().setVariable(executionId, ActivitiUserWorkflowAdapter.USER, user);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/task/GenerateToken.java
----------------------------------------------------------------------
diff --git a/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/task/GenerateToken.java b/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/task/GenerateToken.java
index adbd31a..08f6000 100644
--- a/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/task/GenerateToken.java
+++ b/core/workflow-flowable/src/main/java/org/apache/syncope/core/workflow/flowable/task/GenerateToken.java
@@ -36,8 +36,8 @@ public class GenerateToken extends AbstractFlowableServiceTask {
getVariable(executionId, FlowableUserWorkflowAdapter.USER, User.class);
user.generateToken(
- confDAO.find("token.length", "256").getValues().get(0).getLongValue().intValue(),
- confDAO.find("token.expireTime", "60").getValues().get(0).getLongValue().intValue());
+ confDAO.find("token.length", 256L).intValue(),
+ confDAO.find("token.expireTime", 60L).intValue());
engine.getRuntimeService().setVariable(executionId, FlowableUserWorkflowAdapter.USER, user);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
index a5f7361..f1cf759 100644
--- a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
+++ b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
@@ -132,8 +132,8 @@ public class DefaultUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
@Override
protected void doRequestPasswordReset(final User user) {
user.generateToken(
- confDAO.find("token.length", "256").getValues().get(0).getLongValue().intValue(),
- confDAO.find("token.expireTime", "60").getValues().get(0).getLongValue().intValue());
+ confDAO.find("token.length", 256L).intValue(),
+ confDAO.find("token.expireTime", 60L).intValue());
userDAO.save(user);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/0c9f9585/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
index 59d6c2c..ab999d9 100644
--- a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
+++ b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
@@ -123,7 +123,7 @@ import org.apache.syncope.core.provisioning.api.data.ItemTransformer;
@Component
public class SAML2SPLogic extends AbstractSAML2Logic<AbstractBaseBean> {
- private static final Integer JWT_RELAY_STATE_DURATION = 5;
+ private static final long JWT_RELAY_STATE_DURATION = 5L;
private static final String JWT_CLAIM_IDP_DEFLATE = "IDP_DEFLATE";
[2/4] syncope git commit: [SYNCOPE-1174] More robust conf params'
default value management
Posted by il...@apache.org.
[SYNCOPE-1174] More robust conf params' default value management
This reverts commit 6634daaeebbe95fea9e1c104bc64d7b2e0d45e4b.
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b41675a3
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b41675a3
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b41675a3
Branch: refs/heads/master
Commit: b41675a335a7d6b4d297f0cd332738c21a6c29ba
Parents: 0e4eed0
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Jul 28 10:02:10 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Jul 28 13:22:44 2017 +0200
----------------------------------------------------------------------
.../apache/syncope/core/logic/GroupLogic.java | 2 +-
.../apache/syncope/core/logic/ReportLogic.java | 6 +--
.../apache/syncope/core/logic/SyncopeLogic.java | 6 +--
.../apache/syncope/core/logic/TaskLogic.java | 6 +--
.../core/persistence/api/dao/ConfDAO.java | 2 +-
.../core/persistence/jpa/dao/JPAConfDAO.java | 44 ++++----------------
.../api/data/AccessTokenDataBinder.java | 2 +-
.../java/data/AccessTokenDataBinderImpl.java | 15 ++-----
.../java/data/ConnInstanceDataBinderImpl.java | 2 +-
.../java/data/ResourceDataBinderImpl.java | 2 +-
.../java/data/UserDataBinderImpl.java | 9 ++--
.../provisioning/java/job/JobManagerImpl.java | 13 +++---
.../notification/NotificationManagerImpl.java | 2 +-
.../core/spring/security/AuthDataAccessor.java | 2 +-
.../workflow/activiti/task/GenerateToken.java | 4 +-
.../java/DefaultUserWorkflowAdapter.java | 4 +-
.../apache/syncope/core/logic/SAML2SPLogic.java | 2 +-
17 files changed, 41 insertions(+), 82 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
index 52946a6..8098de0 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
@@ -431,7 +431,7 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupPatch> {
Map<String, Object> jobDataMap = jobManager.register(
task,
null,
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
jobDataMap.put(TaskJob.DRY_RUN_JOBDETAIL_KEY, false);
jobDataMap.put(GroupMemberProvisionTaskJobDelegate.GROUP_KEY_JOBDETAIL_KEY, key);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
index 1f232ad..5243277 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
@@ -97,7 +97,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
jobManager.register(
report,
null,
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
} catch (Exception e) {
LOG.error("While registering quartz job for report " + report.getKey(), e);
@@ -123,7 +123,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
jobManager.register(
report,
null,
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
} catch (Exception e) {
LOG.error("While registering quartz job for report " + report.getKey(), e);
@@ -173,7 +173,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
jobManager.register(
report,
startAt,
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
scheduler.getScheduler().triggerJob(JobNamer.getJobKey(report));
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
index c373311..6b603b9 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/SyncopeLogic.java
@@ -181,15 +181,15 @@ public class SyncopeLogic extends AbstractLogic<AbstractBaseBean> {
private ImplementationLookup implLookup;
public boolean isSelfRegAllowed() {
- return confDAO.find("selfRegistration.allowed", "false").getValues().get(0).getBooleanValue();
+ return confDAO.find("selfRegistration.allowed", false);
}
public boolean isPwdResetAllowed() {
- return confDAO.find("passwordReset.allowed", "false").getValues().get(0).getBooleanValue();
+ return confDAO.find("passwordReset.allowed", false);
}
public boolean isPwdResetRequiringSecurityQuestions() {
- return confDAO.find("passwordReset.securityQuestion", "true").getValues().get(0).getBooleanValue();
+ return confDAO.find("passwordReset.securityQuestion", true);
}
@PreAuthorize("isAuthenticated()")
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
index a310e47..06e38d2 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
@@ -105,7 +105,7 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
jobManager.register(
task,
task.getStartAt(),
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
} catch (Exception e) {
LOG.error("While registering quartz job for task " + task.getKey(), e);
@@ -133,7 +133,7 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
jobManager.register(
task,
task.getStartAt(),
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
} catch (Exception e) {
LOG.error("While registering quartz job for task " + task.getKey(), e);
@@ -228,7 +228,7 @@ public class TaskLogic extends AbstractExecutableLogic<AbstractTaskTO> {
Map<String, Object> jobDataMap = jobManager.register(
(SchedTask) task,
startAt,
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue());
+ confDAO.find("tasks.interruptMaxRetries", 1L));
jobDataMap.put(TaskJob.DRY_RUN_JOBDETAIL_KEY, dryRun);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
index 681ee67..b6fe304 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ConfDAO.java
@@ -25,7 +25,7 @@ public interface ConfDAO extends DAO<Conf> {
CPlainAttr find(String key);
- CPlainAttr find(String key, String defaultValue);
+ <T> T find(String key, T defaultValue);
Conf get();
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
index 3e4ea2c..3f11fea 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAConfDAO.java
@@ -19,17 +19,9 @@
package org.apache.syncope.core.persistence.jpa.dao;
import org.apache.syncope.core.persistence.api.dao.ConfDAO;
-import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
-import org.apache.syncope.core.persistence.api.entity.PlainAttrUniqueValue;
-import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
-import org.apache.syncope.core.persistence.api.entity.PlainSchema;
import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr;
import org.apache.syncope.core.persistence.api.entity.conf.Conf;
-import org.apache.syncope.core.persistence.jpa.entity.conf.JPACPlainAttr;
-import org.apache.syncope.core.persistence.jpa.entity.conf.JPACPlainAttrUniqueValue;
-import org.apache.syncope.core.persistence.jpa.entity.conf.JPACPlainAttrValue;
import org.apache.syncope.core.persistence.jpa.entity.conf.JPAConf;
-import org.apache.syncope.core.spring.ApplicationContextProvider;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
@@ -38,17 +30,6 @@ public class JPAConfDAO extends AbstractDAO<Conf> implements ConfDAO {
private static final String KEY = "cd64d66f-6fff-4008-b966-a06b1cc1436d";
- private PlainSchemaDAO schemaDAO;
-
- private PlainSchemaDAO schemaDAO() {
- synchronized (this) {
- if (schemaDAO == null) {
- schemaDAO = ApplicationContextProvider.getApplicationContext().getBean(PlainSchemaDAO.class);
- }
- }
- return schemaDAO;
- }
-
@Override
public Conf get() {
Conf instance = entityManager().find(JPAConf.class, KEY);
@@ -70,28 +51,17 @@ public class JPAConfDAO extends AbstractDAO<Conf> implements ConfDAO {
@Transactional(readOnly = true)
@Override
- public CPlainAttr find(final String key, final String defaultValue) {
+ public <T> T find(final String key, final T defaultValue) {
CPlainAttr result = find(key);
if (result == null) {
- PlainSchema schema = schemaDAO().find(key);
- if (schema != null) {
- JPACPlainAttr newAttr = new JPACPlainAttr();
- newAttr.setSchema(schema);
-
- PlainAttrValue attrValue;
- if (newAttr.getSchema().isUniqueConstraint()) {
- attrValue = new JPACPlainAttrUniqueValue();
- ((PlainAttrUniqueValue) attrValue).setSchema(newAttr.getSchema());
- } else {
- attrValue = new JPACPlainAttrValue();
- }
- newAttr.add(defaultValue, attrValue);
-
- result = newAttr;
- }
+ return defaultValue;
}
- return result;
+ return result.getUniqueValue() == null
+ ? result.getValues().isEmpty()
+ ? null
+ : result.getValues().get(0).<T>getValue()
+ : result.getUniqueValue().<T>getValue();
}
@Override
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AccessTokenDataBinder.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AccessTokenDataBinder.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AccessTokenDataBinder.java
index be51926..065f5f7 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AccessTokenDataBinder.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/data/AccessTokenDataBinder.java
@@ -27,7 +27,7 @@ import org.apache.syncope.core.persistence.api.entity.AccessToken;
public interface AccessTokenDataBinder {
- Triple<String, String, Date> generateJWT(String subject, int duration, Map<String, Object> claims);
+ Triple<String, String, Date> generateJWT(String subject, long duration, Map<String, Object> claims);
Pair<String, Date> create(String subject, Map<String, Object> claims, boolean replaceExisting);
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AccessTokenDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AccessTokenDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AccessTokenDataBinderImpl.java
index b415fb2..f30562d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AccessTokenDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AccessTokenDataBinderImpl.java
@@ -38,7 +38,6 @@ import org.apache.syncope.core.persistence.api.dao.AccessTokenDAO;
import org.apache.syncope.core.persistence.api.dao.ConfDAO;
import org.apache.syncope.core.persistence.api.entity.AccessToken;
import org.apache.syncope.core.persistence.api.entity.EntityFactory;
-import org.apache.syncope.core.persistence.api.entity.conf.CPlainAttr;
import org.apache.syncope.core.provisioning.api.data.AccessTokenDataBinder;
import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
import org.apache.syncope.core.spring.BeanUtils;
@@ -84,7 +83,7 @@ public class AccessTokenDataBinderImpl implements AccessTokenDataBinder {
@Override
public Triple<String, String, Date> generateJWT(
- final String subject, final int duration, final Map<String, Object> claims) {
+ final String subject, final long duration, final Map<String, Object> claims) {
credentialChecker.checkIsDefaultJWSKeyInUse();
@@ -125,17 +124,9 @@ public class AccessTokenDataBinderImpl implements AccessTokenDataBinder {
}
if (replaceExisting || body == null) {
- int duration = 120;
- CPlainAttr jwtLifetimeMins = confDAO.find("jwt.lifetime.minutes", "120");
- if (jwtLifetimeMins != null) {
- duration = jwtLifetimeMins.getValues().get(0).getLongValue().intValue();
- } else {
- LOG.warn("No schema found for 'jwt.lifetime.minutes'. Using default value of '120'");
- }
-
Triple<String, String, Date> created = generateJWT(
subject,
- duration,
+ confDAO.find("jwt.lifetime.minutes", 120L),
claims);
body = created.getMiddle();
@@ -174,7 +165,7 @@ public class AccessTokenDataBinderImpl implements AccessTokenDataBinder {
credentialChecker.checkIsDefaultJWSKeyInUse();
Date now = new Date();
- int duration = confDAO.find("jwt.lifetime.minutes", "120").getValues().get(0).getLongValue().intValue();
+ long duration = confDAO.find("jwt.lifetime.minutes", 120L);
Date expiry = new Date(now.getTime() + 60L * 1000L * duration);
consumer.getJwtClaims().setExpiryTime(expiry.getTime());
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
index 06a8021..0fc31f7 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ConnInstanceDataBinderImpl.java
@@ -140,7 +140,7 @@ public class ConnInstanceDataBinderImpl implements ConnInstanceDataBinder {
// 2. ensure the maximum history size is not exceeded
List<ConnInstanceHistoryConf> history = connInstanceHistoryConfDAO.findByEntity(connInstance);
- long maxHistorySize = confDAO.find("connector.conf.history.size", "10").getValues().get(0).getLongValue();
+ long maxHistorySize = confDAO.find("connector.conf.history.size", 10L);
if (maxHistorySize < history.size()) {
// always remove the last item since history was obtained by a query with ORDER BY creation DESC
for (int i = 0; i < history.size() - maxHistorySize; i++) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
index ba6da63..b21a605 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/ResourceDataBinderImpl.java
@@ -127,7 +127,7 @@ public class ResourceDataBinderImpl implements ResourceDataBinder {
// 2. ensure the maximum history size is not exceeded
List<ExternalResourceHistoryConf> history = resourceHistoryConfDAO.findByEntity(resource);
- long maxHistorySize = confDAO.find("resource.conf.history.size", "10").getValues().get(0).getLongValue();
+ long maxHistorySize = confDAO.find("resource.conf.history.size", 10L);
if (maxHistorySize < history.size()) {
// always remove the last item since history was obtained by a query with ORDER BY creation DESC
for (int i = 0; i < history.size() - maxHistorySize; i++) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index ed77df4..7c291c0 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -116,7 +116,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
@Transactional(readOnly = true)
@Override
public UserTO returnUserTO(final UserTO userTO) {
- if (!confDAO.find("return.password.value", "false").getValues().get(0).getBooleanValue()) {
+ if (!confDAO.find("return.password.value", false)) {
userTO.setPassword(null);
}
return userTO;
@@ -158,8 +158,7 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
private void setPassword(final User user, final String password, final SyncopeClientCompositeException scce) {
try {
- String algorithm = confDAO.find(
- "password.cipher.algorithm", CipherAlgorithm.AES.name()).getValues().get(0).getStringValue();
+ String algorithm = confDAO.find("password.cipher.algorithm", CipherAlgorithm.AES.name());
CipherAlgorithm predefined = CipherAlgorithm.valueOf(algorithm);
user.setPassword(password, predefined);
} catch (IllegalArgumentException e) {
@@ -642,8 +641,8 @@ public class UserDataBinderImpl extends AbstractAnyDataBinder implements UserDat
@Override
public MembershipTO transform(final Group group) {
MembershipTO membershipTO = new MembershipTO.Builder().
- group(group.getKey(), group.getName()).
- build();
+ group(group.getKey(), group.getName()).
+ build();
return membershipTO;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
index 0b2fba0..1af62c5 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/JobManagerImpl.java
@@ -30,7 +30,6 @@ import java.util.Set;
import org.apache.commons.collections4.IterableUtils;
import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.syncope.common.lib.SyncopeConstants;
import org.apache.syncope.common.lib.types.TaskType;
@@ -307,16 +306,16 @@ public class JobManagerImpl implements JobManager, SyncopeLoader {
public Pair<String, Long> exec() {
String notificationJobCronExpression = StringUtils.EMPTY;
- CPlainAttr notificationJobCronExp =
- confDAO.find("notificationjob.cronExpression", NotificationJob.DEFAULT_CRON_EXP);
- if (!notificationJobCronExp.getValuesAsStrings().isEmpty()) {
+ CPlainAttr notificationJobCronExp = confDAO.find("notificationjob.cronExpression");
+ if (notificationJobCronExp == null) {
+ notificationJobCronExpression = NotificationJob.DEFAULT_CRON_EXP;
+ } else if (!notificationJobCronExp.getValuesAsStrings().isEmpty()) {
notificationJobCronExpression = notificationJobCronExp.getValuesAsStrings().get(0);
}
- long interruptMaxRetries =
- confDAO.find("tasks.interruptMaxRetries", "1").getValues().get(0).getLongValue();
+ long interruptMaxRetries = confDAO.find("tasks.interruptMaxRetries", 1L);
- return ImmutablePair.of(notificationJobCronExpression, interruptMaxRetries);
+ return Pair.of(notificationJobCronExpression, interruptMaxRetries);
}
});
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
index 1e6f531..5438cee 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
@@ -162,7 +162,7 @@ public class NotificationManagerImpl implements NotificationManager {
@Transactional(readOnly = true)
@Override
public long getMaxRetries() {
- return confDAO.find("notification.maxRetries", "0").getValues().get(0).getLongValue();
+ return confDAO.find("notification.maxRetries", 0L);
}
/**
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
----------------------------------------------------------------------
diff --git a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
index 4668750..63e1cf1 100644
--- a/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
+++ b/core/spring/src/main/java/org/apache/syncope/core/spring/security/AuthDataAccessor.java
@@ -221,7 +221,7 @@ public class AuthDataAccessor {
boolean userModified = false;
authenticated = AuthDataAccessor.this.authenticate(user, authentication.getCredentials().toString());
if (authenticated) {
- if (confDAO.find("log.lastlogindate", Boolean.toString(true)).getValues().get(0).getBooleanValue()) {
+ if (confDAO.find("log.lastlogindate", true)) {
user.setLastLoginDate(new Date());
userModified = true;
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/GenerateToken.java
----------------------------------------------------------------------
diff --git a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/GenerateToken.java b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/GenerateToken.java
index 9ce6941..a5e70e5 100644
--- a/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/GenerateToken.java
+++ b/core/workflow-activiti/src/main/java/org/apache/syncope/core/workflow/activiti/task/GenerateToken.java
@@ -36,8 +36,8 @@ public class GenerateToken extends AbstractActivitiServiceTask {
getVariable(executionId, ActivitiUserWorkflowAdapter.USER, User.class);
user.generateToken(
- confDAO.find("token.length", "256").getValues().get(0).getLongValue().intValue(),
- confDAO.find("token.expireTime", "60").getValues().get(0).getLongValue().intValue());
+ confDAO.find("token.length", 256L).intValue(),
+ confDAO.find("token.expireTime", 60L).intValue());
engine.getRuntimeService().setVariable(executionId, ActivitiUserWorkflowAdapter.USER, user);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
index e3b87ba..429a2ce 100644
--- a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
+++ b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/DefaultUserWorkflowAdapter.java
@@ -127,8 +127,8 @@ public class DefaultUserWorkflowAdapter extends AbstractUserWorkflowAdapter {
@Override
protected void doRequestPasswordReset(final User user) {
user.generateToken(
- confDAO.find("token.length", "256").getValues().get(0).getLongValue().intValue(),
- confDAO.find("token.expireTime", "60").getValues().get(0).getLongValue().intValue());
+ confDAO.find("token.length", 256L).intValue(),
+ confDAO.find("token.expireTime", 60L).intValue());
userDAO.save(user);
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/b41675a3/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
----------------------------------------------------------------------
diff --git a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
index 59d6c2c..ab999d9 100644
--- a/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
+++ b/ext/saml2sp/logic/src/main/java/org/apache/syncope/core/logic/SAML2SPLogic.java
@@ -123,7 +123,7 @@ import org.apache.syncope.core.provisioning.api.data.ItemTransformer;
@Component
public class SAML2SPLogic extends AbstractSAML2Logic<AbstractBaseBean> {
- private static final Integer JWT_RELAY_STATE_DURATION = 5;
+ private static final long JWT_RELAY_STATE_DURATION = 5L;
private static final String JWT_CLAIM_IDP_DEFLATE = "IDP_DEFLATE";
[4/4] syncope git commit: [SYNCOPE-1175] Fixing token generation
Posted by il...@apache.org.
[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();