This is an automated email from the ASF dual-hosted git repository.
arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 6ea6cb4cb refactor: add lombok to security module
6ea6cb4cb is described below
commit 6ea6cb4cb1ac1b90d1095f5c071e23094a9ce4f1
Author: Hemant Gupta <[email protected]>
AuthorDate: Wed Oct 12 15:55:57 2022 +0530
refactor: add lombok to security module
---
.../infrastructure/core/api/JsonCommand.java | 3 +-
.../infrastructure/core/api/JsonQuery.java | 3 +-
.../security/api/AuthenticationApiResource.java | 19 +++--
.../security/api/UserDetailsApiResource.java | 16 ++--
.../security/data/AccessTokenData.java | 30 +++-----
.../security/data/AuthenticatedOauthUserData.java | 85 +++++----------------
.../security/data/AuthenticatedUserData.java | 89 +++++-----------------
.../security/data/OTPDeliveryMethod.java | 24 +++---
.../infrastructure/security/data/OTPMetadata.java | 37 +++------
.../infrastructure/security/data/OTPRequest.java | 29 +++----
.../security/data/PlatformRequestLog.java | 28 ++++---
.../domain/BasicPasswordEncodablePlatformUser.java | 37 ++++-----
.../security/domain/TFAccessToken.java | 66 +++-------------
.../security/domain/TwoFactorConfiguration.java | 46 +++--------
.../service/TwoFactorConfigurationServiceImpl.java | 20 ++---
.../security/service/TwoFactorServiceImpl.java | 4 +-
16 files changed, 169 insertions(+), 367 deletions(-)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/JsonCommand.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/JsonCommand.java
index 6c23663fa..31e333935 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/JsonCommand.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/JsonCommand.java
@@ -636,7 +636,8 @@ public final class JsonCommand {
final Long saltValue) {
final String passwordPlainText =
stringValueOfParameterNamed(parameterName);
- final PlatformUser dummyPlatformUser = new
BasicPasswordEncodablePlatformUser(saltValue, "", passwordPlainText);
+ final PlatformUser dummyPlatformUser = new
BasicPasswordEncodablePlatformUser().setId(saltValue).setUsername("")
+ .setPassword(passwordPlainText);
return platformPasswordEncoder.encode(dummyPlatformUser);
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/JsonQuery.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/JsonQuery.java
index e3ac1344f..86b9aeec5 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/JsonQuery.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/api/JsonQuery.java
@@ -270,7 +270,8 @@ public final class JsonQuery {
final Long saltValue) {
final String passwordPlainText =
stringValueOfParameterNamed(parameterName);
- final PlatformUser dummyPlatformUser = new
BasicPasswordEncodablePlatformUser(saltValue, "", passwordPlainText);
+ final PlatformUser dummyPlatformUser = new
BasicPasswordEncodablePlatformUser().setId(saltValue).setUsername("")
+ .setPassword(passwordPlainText);
return platformPasswordEncoder.encode(dummyPlatformUser);
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/AuthenticationApiResource.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/AuthenticationApiResource.java
index 91efd8ecd..b2863f53b 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/AuthenticationApiResource.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/AuthenticationApiResource.java
@@ -118,7 +118,7 @@ public class AuthenticationApiResource {
final Authentication authenticationCheck =
this.customAuthenticationProvider.authenticate(authentication);
final Collection<String> permissions = new ArrayList<>();
- AuthenticatedUserData authenticatedUserData = new
AuthenticatedUserData(request.username, permissions);
+ AuthenticatedUserData authenticatedUserData = new
AuthenticatedUserData().setUsername(request.username).setPermissions(permissions);
if (authenticationCheck.isAuthenticated()) {
final Collection<GrantedAuthority> authorities = new
ArrayList<>(authenticationCheck.getAuthorities());
@@ -148,14 +148,19 @@ public class AuthenticationApiResource {
&&
!principal.hasSpecificPermissionTo(TwoFactorConstants.BYPASS_TWO_FACTOR_PERMISSION);
Long userId = principal.getId();
if
(this.springSecurityPlatformSecurityContext.doesPasswordHasToBeRenewed(principal))
{
- authenticatedUserData = new
AuthenticatedUserData(request.username, userId,
- new String(base64EncodedAuthenticationKey,
StandardCharsets.UTF_8), isTwoFactorRequired);
+ authenticatedUserData = new
AuthenticatedUserData().setUsername(request.username).setUserId(userId)
+ .setBase64EncodedAuthenticationKey(new
String(base64EncodedAuthenticationKey, StandardCharsets.UTF_8))
+
.setAuthenticated(true).setShouldRenewPassword(true).setTwoFactorAuthenticationRequired(isTwoFactorRequired);
} else {
- authenticatedUserData = new
AuthenticatedUserData(request.username, officeId, officeName, staffId,
staffDisplayName,
- organisationalRole, roles, permissions,
principal.getId(),
- new String(base64EncodedAuthenticationKey,
StandardCharsets.UTF_8), isTwoFactorRequired,
- returnClientList ?
clientReadPlatformService.retrieveUserClients(userId) : null);
+ authenticatedUserData = new
AuthenticatedUserData().setUsername(request.username).setOfficeId(officeId)
+
.setOfficeName(officeName).setStaffId(staffId).setStaffDisplayName(staffDisplayName)
+
.setOrganisationalRole(organisationalRole).setRoles(roles).setPermissions(permissions).setUserId(principal.getId())
+ .setAuthenticated(true)
+ .setBase64EncodedAuthenticationKey(new
String(base64EncodedAuthenticationKey, StandardCharsets.UTF_8))
+
.setTwoFactorAuthenticationRequired(isTwoFactorRequired)
+ .setClients(returnClientList ?
clientReadPlatformService.retrieveUserClients(userId) : null);
+
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/UserDetailsApiResource.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/UserDetailsApiResource.java
index 2ee5fcc7e..e78b5ea43 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/UserDetailsApiResource.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/api/UserDetailsApiResource.java
@@ -95,7 +95,8 @@ public class UserDetailsApiResource {
}
final Collection<String> permissions = new ArrayList<>();
- AuthenticatedOauthUserData authenticatedUserData = new
AuthenticatedOauthUserData(principal.getUsername(), permissions);
+ AuthenticatedOauthUserData authenticatedUserData = new
AuthenticatedOauthUserData().setUsername(principal.getUsername())
+ .setPermissions(permissions);
final Collection<GrantedAuthority> authorities = new
ArrayList<>(authentication.getAuthorities());
for (final GrantedAuthority grantedAuthority : authorities) {
@@ -119,12 +120,15 @@ public class UserDetailsApiResource {
boolean isTwoFactorRequired = this.twoFactorEnabled
&&
!principal.hasSpecificPermissionTo(TwoFactorConstants.BYPASS_TWO_FACTOR_PERMISSION);
if
(this.springSecurityPlatformSecurityContext.doesPasswordHasToBeRenewed(principal))
{
- authenticatedUserData = new
AuthenticatedOauthUserData(principal.getUsername(), principal.getId(),
- authentication.getToken().getTokenValue(),
isTwoFactorRequired);
+ authenticatedUserData = new
AuthenticatedOauthUserData().setUsername(principal.getUsername()).setUserId(principal.getId())
+
.setAccessToken(authentication.getToken().getTokenValue()).setAuthenticated(true).setShouldRenewPassword(true)
+ .setTwoFactorAuthenticationRequired(isTwoFactorRequired);
} else {
- authenticatedUserData = new
AuthenticatedOauthUserData(principal.getUsername(), officeId, officeName,
staffId, staffDisplayName,
- organisationalRole, roles, permissions, principal.getId(),
authentication.getToken().getTokenValue(),
- isTwoFactorRequired);
+ authenticatedUserData = new
AuthenticatedOauthUserData().setUsername(principal.getUsername()).setOfficeId(officeId)
+
.setOfficeName(officeName).setStaffId(staffId).setStaffDisplayName(staffDisplayName)
+
.setOrganisationalRole(organisationalRole).setRoles(roles).setPermissions(permissions).setUserId(principal.getId())
+
.setAccessToken(authentication.getToken().getTokenValue()).setAuthenticated(true)
+ .setTwoFactorAuthenticationRequired(isTwoFactorRequired);
}
return this.apiJsonSerializerService.serialize(authenticatedUserData);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AccessTokenData.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AccessTokenData.java
index cf9896776..3f2286a9a 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AccessTokenData.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AccessTokenData.java
@@ -19,29 +19,17 @@
package org.apache.fineract.infrastructure.security.data;
import java.time.ZonedDateTime;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
public class AccessTokenData {
- private final String token;
+ private String token;
- private final ZonedDateTime validFrom;
- private final ZonedDateTime validTo;
-
- public AccessTokenData(String token, ZonedDateTime validFrom,
ZonedDateTime validTo) {
- this.token = token;
- this.validFrom = validFrom;
- this.validTo = validTo;
- }
-
- public String getToken() {
- return token;
- }
-
- public ZonedDateTime getValidFrom() {
- return validFrom;
- }
-
- public ZonedDateTime getValidTo() {
- return validTo;
- }
+ private ZonedDateTime validFrom;
+ private ZonedDateTime validTo;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AuthenticatedOauthUserData.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AuthenticatedOauthUserData.java
index f8c73e5ac..65e5dee65 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AuthenticatedOauthUserData.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AuthenticatedOauthUserData.java
@@ -19,92 +19,47 @@
package org.apache.fineract.infrastructure.security.data;
import java.util.Collection;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
import org.apache.fineract.useradministration.data.RoleData;
/**
* Immutable data object for authentication. Used in case of Oauth2.
*/
+
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
public class AuthenticatedOauthUserData {
@SuppressWarnings("unused")
- private final String username;
+ private String username;
@SuppressWarnings("unused")
- private final Long userId;
+ private Long userId;
@SuppressWarnings("unused")
- private final String accessToken;
+ private String accessToken;
@SuppressWarnings("unused")
- private final boolean authenticated;
+ private boolean authenticated;
@SuppressWarnings("unused")
- private final Long officeId;
+ private Long officeId;
@SuppressWarnings("unused")
- private final String officeName;
+ private String officeName;
@SuppressWarnings("unused")
- private final Long staffId;
+ private Long staffId;
@SuppressWarnings("unused")
- private final String staffDisplayName;
+ private String staffDisplayName;
@SuppressWarnings("unused")
- private final EnumOptionData organisationalRole;
+ private EnumOptionData organisationalRole;
@SuppressWarnings("unused")
- private final Collection<RoleData> roles;
+ private Collection<RoleData> roles;
@SuppressWarnings("unused")
- private final Collection<String> permissions;
+ private Collection<String> permissions;
@SuppressWarnings("unused")
- private final boolean shouldRenewPassword;
+ private boolean shouldRenewPassword;
@SuppressWarnings("unused")
- private final boolean isTwoFactorAuthenticationRequired;
-
- public AuthenticatedOauthUserData(final String username, final
Collection<String> permissions) {
- this.username = username;
- this.userId = null;
- this.accessToken = null;
- this.authenticated = false;
- this.officeId = null;
- this.officeName = null;
- this.staffId = null;
- this.staffDisplayName = null;
- this.organisationalRole = null;
- this.roles = null;
- this.permissions = permissions;
- this.shouldRenewPassword = false;
- this.isTwoFactorAuthenticationRequired = false;
- }
-
- public AuthenticatedOauthUserData(final String username, final Long
officeId, final String officeName, final Long staffId,
- final String staffDisplayName, final EnumOptionData
organisationalRole, final Collection<RoleData> roles,
- final Collection<String> permissions, final Long userId, final
String accessToken,
- final boolean isTwoFactorAuthenticationRequired) {
- this.username = username;
- this.officeId = officeId;
- this.officeName = officeName;
- this.staffId = staffId;
- this.staffDisplayName = staffDisplayName;
- this.organisationalRole = organisationalRole;
- this.userId = userId;
- this.accessToken = accessToken;
- this.authenticated = true;
- this.roles = roles;
- this.permissions = permissions;
- this.shouldRenewPassword = false;
- this.isTwoFactorAuthenticationRequired =
isTwoFactorAuthenticationRequired;
- }
-
- public AuthenticatedOauthUserData(final String username, final Long
userId, final String accessToken,
- final boolean isTwoFactorAuthenticationRequired) {
- this.username = username;
- this.officeId = null;
- this.officeName = null;
- this.staffId = null;
- this.staffDisplayName = null;
- this.organisationalRole = null;
- this.userId = userId;
- this.accessToken = accessToken;
- this.authenticated = true;
- this.roles = null;
- this.permissions = null;
- this.shouldRenewPassword = true;
- this.isTwoFactorAuthenticationRequired =
isTwoFactorAuthenticationRequired;
- }
+ private boolean isTwoFactorAuthenticationRequired;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AuthenticatedUserData.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AuthenticatedUserData.java
index 7f11bad5f..5fdf4d9fa 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AuthenticatedUserData.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/AuthenticatedUserData.java
@@ -19,97 +19,48 @@
package org.apache.fineract.infrastructure.security.data;
import java.util.Collection;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
import org.apache.fineract.useradministration.data.RoleData;
/**
* Immutable data object for authentication.
*/
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
public class AuthenticatedUserData {
@SuppressWarnings("unused")
- private final String username;
+ private String username;
@SuppressWarnings("unused")
- private final Long userId;
+ private Long userId;
@SuppressWarnings("unused")
- private final String base64EncodedAuthenticationKey;
+ private String base64EncodedAuthenticationKey;
@SuppressWarnings("unused")
- private final boolean authenticated;
+ private boolean authenticated;
@SuppressWarnings("unused")
- private final Long officeId;
+ private Long officeId;
@SuppressWarnings("unused")
- private final String officeName;
+ private String officeName;
@SuppressWarnings("unused")
- private final Long staffId;
+ private Long staffId;
@SuppressWarnings("unused")
- private final String staffDisplayName;
+ private String staffDisplayName;
@SuppressWarnings("unused")
- private final EnumOptionData organisationalRole;
+ private EnumOptionData organisationalRole;
@SuppressWarnings("unused")
- private final Collection<RoleData> roles;
+ private Collection<RoleData> roles;
@SuppressWarnings("unused")
- private final Collection<String> permissions;
+ private Collection<String> permissions;
- private final Collection<Long> clients;
+ private Collection<Long> clients;
@SuppressWarnings("unused")
- private final boolean shouldRenewPassword;
+ private boolean shouldRenewPassword;
@SuppressWarnings("unused")
- private final boolean isTwoFactorAuthenticationRequired;
-
- public AuthenticatedUserData(final String username, final
Collection<String> permissions) {
- this.username = username;
- this.userId = null;
- this.base64EncodedAuthenticationKey = null;
- this.authenticated = false;
- this.officeId = null;
- this.officeName = null;
- this.staffId = null;
- this.staffDisplayName = null;
- this.organisationalRole = null;
- this.roles = null;
- this.permissions = permissions;
- this.shouldRenewPassword = false;
- this.isTwoFactorAuthenticationRequired = false;
- clients = null;
- }
-
- public AuthenticatedUserData(final String username, final Long officeId,
final String officeName, final Long staffId,
- final String staffDisplayName, final EnumOptionData
organisationalRole, final Collection<RoleData> roles,
- final Collection<String> permissions, final Long userId, final
String base64EncodedAuthenticationKey,
- final boolean isTwoFactorAuthenticationRequired, Collection<Long>
aListOfClientIDs) {
- this.username = username;
- this.officeId = officeId;
- this.officeName = officeName;
- this.staffId = staffId;
- this.staffDisplayName = staffDisplayName;
- this.organisationalRole = organisationalRole;
- this.userId = userId;
- this.base64EncodedAuthenticationKey = base64EncodedAuthenticationKey;
- this.authenticated = true;
- this.roles = roles;
- this.permissions = permissions;
- this.shouldRenewPassword = false;
- this.isTwoFactorAuthenticationRequired =
isTwoFactorAuthenticationRequired;
- clients = aListOfClientIDs;
- }
-
- public AuthenticatedUserData(final String username, final Long userId,
final String base64EncodedAuthenticationKey,
- final boolean isTwoFactorAuthenticationRequired) {
- this.username = username;
- this.officeId = null;
- this.officeName = null;
- this.staffId = null;
- this.staffDisplayName = null;
- this.organisationalRole = null;
- this.userId = userId;
- this.base64EncodedAuthenticationKey = base64EncodedAuthenticationKey;
- this.authenticated = true;
- this.roles = null;
- this.permissions = null;
- this.shouldRenewPassword = true;
- this.isTwoFactorAuthenticationRequired =
isTwoFactorAuthenticationRequired;
- clients = null;
- }
+ private boolean isTwoFactorAuthenticationRequired;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPDeliveryMethod.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPDeliveryMethod.java
index f05c7ae83..f9af45706 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPDeliveryMethod.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPDeliveryMethod.java
@@ -18,21 +18,15 @@
*/
package org.apache.fineract.infrastructure.security.data;
-public class OTPDeliveryMethod {
-
- private final String name;
- private final String target;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
- public OTPDeliveryMethod(String name, String target) {
- this.name = name;
- this.target = target;
- }
-
- public String getName() {
- return name;
- }
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class OTPDeliveryMethod {
- public String getTarget() {
- return target;
- }
+ private String name;
+ private String target;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPMetadata.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPMetadata.java
index d7cb7c46d..c7719c534 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPMetadata.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPMetadata.java
@@ -19,34 +19,17 @@
package org.apache.fineract.infrastructure.security.data;
import java.time.ZonedDateTime;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
public class OTPMetadata {
- private final ZonedDateTime requestTime;
- private final int tokenLiveTimeInSec;
- private final boolean extendedAccessToken;
- private final OTPDeliveryMethod deliveryMethod;
-
- public OTPMetadata(ZonedDateTime requestTime, int tokenLiveTimeInSec,
boolean extendedAccessToken, OTPDeliveryMethod deliveryMethod) {
- this.requestTime = requestTime;
- this.tokenLiveTimeInSec = tokenLiveTimeInSec;
- this.extendedAccessToken = extendedAccessToken;
- this.deliveryMethod = deliveryMethod;
- }
-
- public ZonedDateTime getRequestTime() {
- return requestTime;
- }
-
- public int getTokenLiveTimeInSec() {
- return tokenLiveTimeInSec;
- }
-
- public boolean isExtendedAccessToken() {
- return extendedAccessToken;
- }
-
- public OTPDeliveryMethod getDeliveryMethod() {
- return deliveryMethod;
- }
+ private ZonedDateTime requestTime;
+ private int tokenLiveTimeInSec;
+ private boolean extendedAccessToken;
+ private OTPDeliveryMethod deliveryMethod;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPRequest.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPRequest.java
index 53ec060fe..a3e851947 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPRequest.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/OTPRequest.java
@@ -19,30 +19,25 @@
package org.apache.fineract.infrastructure.security.data;
import java.time.ZonedDateTime;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
import org.apache.fineract.infrastructure.core.service.DateUtils;
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
public class OTPRequest {
- private final String token;
- private final OTPMetadata metadata;
-
- public OTPRequest(String token, OTPMetadata metadata) {
- this.token = token;
- this.metadata = metadata;
- }
+ private String token;
+ private OTPMetadata metadata;
public static OTPRequest create(String token, int tokenLiveTimeInSec,
boolean extendedAccessToken, OTPDeliveryMethod deliveryMethod) {
- final OTPMetadata metadata = new
OTPMetadata(DateUtils.getLocalDateTimeOfTenant().atZone(DateUtils.getDateTimeZoneOfTenant()),
- tokenLiveTimeInSec, extendedAccessToken, deliveryMethod);
- return new OTPRequest(token, metadata);
- }
-
- public String getToken() {
- return token;
- }
+ final OTPMetadata metadata = new OTPMetadata()
+
.setRequestTime(DateUtils.getLocalDateTimeOfTenant().atZone(DateUtils.getDateTimeZoneOfTenant()))
+
.setTokenLiveTimeInSec(tokenLiveTimeInSec).setExtendedAccessToken(extendedAccessToken).setDeliveryMethod(deliveryMethod);
- public OTPMetadata getMetadata() {
- return metadata;
+ return new OTPRequest().setToken(token).setMetadata(metadata);
}
public boolean isValid() {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/PlatformRequestLog.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/PlatformRequestLog.java
index 1ea75068a..def0e37fc 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/PlatformRequestLog.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/data/PlatformRequestLog.java
@@ -22,23 +22,29 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
import org.apache.commons.lang3.time.StopWatch;
/**
* Immutable data object representing platform API request used for
logging/debugging.
*/
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
public final class PlatformRequestLog {
@SuppressWarnings("unused")
- private final long startTime;
+ private long startTime;
@SuppressWarnings("unused")
- private final long totalTime;
+ private long totalTime;
@SuppressWarnings("unused")
- private final String method;
+ private String method;
@SuppressWarnings("unused")
- private final String url;
+ private String url;
@SuppressWarnings("unused")
- private final Map<String, String[]> parameters;
+ private Map<String, String[]> parameters;
public static PlatformRequestLog from(final StopWatch task, final
HttpServletRequest request) throws IOException {
final String requestUrl = request.getRequestURL().toString();
@@ -47,15 +53,7 @@ public final class PlatformRequestLog {
parameters.remove("password");
parameters.remove("_");
- return new PlatformRequestLog(task.getStartTime(), task.getTime(),
request.getMethod(), requestUrl, parameters);
- }
-
- private PlatformRequestLog(final long startTime, final long time, final
String method, final String requestUrl,
- final Map<String, String[]> parameters) {
- this.startTime = startTime;
- this.totalTime = time;
- this.method = method;
- this.url = requestUrl;
- this.parameters = parameters;
+ return new
PlatformRequestLog().setStartTime(task.getStartTime()).setTotalTime(task.getTime()).setMethod(request.getMethod())
+ .setUrl(requestUrl).setParameters(parameters);
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/BasicPasswordEncodablePlatformUser.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/BasicPasswordEncodablePlatformUser.java
index 1cbf94bea..bddb8141e 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/BasicPasswordEncodablePlatformUser.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/BasicPasswordEncodablePlatformUser.java
@@ -19,33 +19,23 @@
package org.apache.fineract.infrastructure.security.domain;
import java.util.Collection;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.Accessors;
import org.springframework.security.core.GrantedAuthority;
+@Setter
+@NoArgsConstructor
+@Accessors(chain = true)
public class BasicPasswordEncodablePlatformUser implements PlatformUser {
- private final Long id;
- private final String username;
- private final String password;
-
- public BasicPasswordEncodablePlatformUser(final Long id, final String
username, final String password) {
- this.id = id;
- this.username = username;
- this.password = password;
- }
-
- public Long getId() {
- return this.id;
- }
-
- @Override
- public String getPassword() {
- return this.password;
- }
-
- @Override
- public String getUsername() {
- return this.username;
- }
+ @Getter
+ private Long id;
+ @Getter(onMethod = @__(@Override))
+ private String username;
+ @Getter(onMethod = @__(@Override))
+ private String password;
@Override
public Collection<GrantedAuthority> getAuthorities() {
@@ -71,4 +61,5 @@ public class BasicPasswordEncodablePlatformUser implements
PlatformUser {
public boolean isEnabled() {
return false;
}
+
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TFAccessToken.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TFAccessToken.java
index 9975cd495..6ced3adc8 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TFAccessToken.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TFAccessToken.java
@@ -25,6 +25,10 @@ import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.Accessors;
import
org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
import org.apache.fineract.infrastructure.core.service.DateUtils;
import org.apache.fineract.infrastructure.security.data.AccessTokenData;
@@ -33,6 +37,10 @@ import org.apache.fineract.useradministration.domain.AppUser;
@Entity
@Table(name = "twofactor_access_token", uniqueConstraints = {
@UniqueConstraint(columnNames = { "token", "appuser_id" }, name =
"token_appuser_UNIQUE") })
+@Getter
+@Setter
+@NoArgsConstructor
+@Accessors(chain = true)
public class TFAccessToken extends AbstractPersistableCustom {
@Column(name = "token", nullable = false, length = 32)
@@ -51,70 +59,20 @@ public class TFAccessToken extends
AbstractPersistableCustom {
@Column(name = "enabled", nullable = false)
private boolean enabled;
- public TFAccessToken() {}
-
public static TFAccessToken create(String token, AppUser user, int
tokenLiveTimeInSec) {
LocalDateTime validFrom = DateUtils.getLocalDateTimeOfTenant();
LocalDateTime validTo = validFrom.plusSeconds(tokenLiveTimeInSec);
- return new TFAccessToken(token, user, validFrom, validTo, true);
- }
-
- public TFAccessToken(String token, AppUser user, LocalDateTime validFrom,
LocalDateTime validTo, boolean enabled) {
- this.token = token;
- this.user = user;
- this.validFrom = validFrom;
- this.validTo = validTo;
- this.enabled = enabled;
+ return new
TFAccessToken().setToken(token).setUser(user).setValidFrom(validFrom).setValidTo(validTo).setEnabled(true);
}
public boolean isValid() {
- return this.enabled && isDateInTheFuture(getValidToDate()) &&
isDateInThePast(getValidFromDate());
+ return this.enabled && isDateInTheFuture(getValidTo()) &&
isDateInThePast(getValidFrom());
}
public AccessTokenData toTokenData() {
- return new AccessTokenData(this.token,
getValidFromDate().atZone(DateUtils.getDateTimeZoneOfTenant()),
- getValidToDate().atZone(DateUtils.getDateTimeZoneOfTenant()));
- }
-
- public String getToken() {
- return token;
- }
-
- public AppUser getUser() {
- return user;
- }
-
- public boolean isEnabled() {
- return enabled;
- }
-
- public LocalDateTime getValidFromDate() {
- return validFrom;
- }
-
- public LocalDateTime getValidToDate() {
- return validTo;
- }
-
- public void setToken(String token) {
- this.token = token;
- }
-
- public void setUser(AppUser user) {
- this.user = user;
- }
-
- public void setValidFrom(LocalDateTime validFrom) {
- this.validFrom = validFrom;
- }
-
- public void setValidTo(LocalDateTime validTo) {
- this.validTo = validTo;
- }
-
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
+ return new
AccessTokenData().setToken(this.token).setValidFrom(getValidFrom().atZone(DateUtils.getDateTimeZoneOfTenant()))
+
.setValidTo(getValidTo().atZone(DateUtils.getDateTimeZoneOfTenant()));
}
private boolean isDateInTheFuture(LocalDateTime dateTime) {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TwoFactorConfiguration.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TwoFactorConfiguration.java
index 30d62cf38..931aa64a3 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TwoFactorConfiguration.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/domain/TwoFactorConfiguration.java
@@ -22,6 +22,10 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.Accessors;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.math.NumberUtils;
import
org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
@@ -29,6 +33,10 @@ import
org.apache.fineract.infrastructure.security.constants.TwoFactorConfigurat
@Entity
@Table(name = "twofactor_configuration", uniqueConstraints = {
@UniqueConstraint(columnNames = { "name" }, name = "name_UNIQUE") })
+@Getter
+@Setter
+@NoArgsConstructor
+@Accessors(chain = true)
public class TwoFactorConfiguration extends AbstractPersistableCustom {
@Column(name = "name", nullable = false, length = 32)
@@ -37,46 +45,14 @@ public class TwoFactorConfiguration extends
AbstractPersistableCustom {
@Column(name = "value", nullable = true, length = 1024)
private String value;
- public String getName() {
- return name;
- }
-
- public String getStringValue() {
- return value;
- }
-
- public Boolean getBooleanValue() {
- return BooleanUtils.toBooleanObject(value);
- }
-
- public Integer getIntegerValue() {
- try {
- return NumberUtils.createInteger(value);
- } catch (NumberFormatException e) {
- return null;
- }
- }
-
public Object getObjectValue() {
if (TwoFactorConfigurationConstants.NUMBER_PARAMETERS.contains(name)) {
- return getIntegerValue();
+ return NumberUtils.createInteger(value);
}
if (TwoFactorConfigurationConstants.BOOLEAN_PARAMETERS.contains(name))
{
- return getBooleanValue();
+ return BooleanUtils.toBooleanObject(value);
}
- return getStringValue();
- }
-
- public void setStringValue(String value) {
- this.value = value;
- }
-
- public void setBooleanValue(boolean value) {
- this.value = String.valueOf(value);
- }
-
- public void setIntegerValue(long value) {
- this.value = String.valueOf(value);
+ return getValue();
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorConfigurationServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorConfigurationServiceImpl.java
index a01eaf8c7..b3247e3da 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorConfigurationServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorConfigurationServiceImpl.java
@@ -28,6 +28,8 @@ import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.math.NumberUtils;
import org.apache.fineract.infrastructure.core.api.JsonCommand;
import
org.apache.fineract.infrastructure.security.constants.TwoFactorConfigurationConstants;
import
org.apache.fineract.infrastructure.security.constants.TwoFactorConstants;
@@ -78,10 +80,10 @@ public class TwoFactorConfigurationServiceImpl implements
TwoFactorConfiguration
continue;
}
- if (command.isChangeInBooleanParameterNamed(parameterName,
configuration.getBooleanValue())) {
+ if (command.isChangeInBooleanParameterNamed(parameterName,
BooleanUtils.toBooleanObject(configuration.getValue()))) {
final boolean newValue =
command.booleanPrimitiveValueOfParameterNamed(parameterName);
actualChanges.put(parameterName, newValue);
- configuration.setBooleanValue(newValue);
+ configuration.setValue(String.valueOf(newValue));
configurationRepository.save(configuration);
}
}
@@ -92,10 +94,10 @@ public class TwoFactorConfigurationServiceImpl implements
TwoFactorConfiguration
continue;
}
- if (command.isChangeInStringParameterNamed(parameterName,
configuration.getStringValue())) {
+ if (command.isChangeInStringParameterNamed(parameterName,
configuration.getValue())) {
final String newValue =
command.stringValueOfParameterNamed(parameterName).trim();
actualChanges.put(parameterName, newValue);
- configuration.setStringValue(newValue);
+ configuration.setValue(newValue);
configurationRepository.save(configuration);
}
}
@@ -106,10 +108,10 @@ public class TwoFactorConfigurationServiceImpl implements
TwoFactorConfiguration
continue;
}
- if
(command.isChangeInIntegerSansLocaleParameterNamed(parameterName,
configuration.getIntegerValue())) {
+ if
(command.isChangeInIntegerSansLocaleParameterNamed(parameterName,
NumberUtils.createInteger(configuration.getValue()))) {
final Long newValue =
command.longValueOfParameterNamed(parameterName);
actualChanges.put(parameterName, newValue);
- configuration.setIntegerValue(newValue);
+ configuration.setValue(String.valueOf(newValue));
configurationRepository.save(configuration);
}
}
@@ -221,7 +223,7 @@ public class TwoFactorConfigurationServiceImpl implements
TwoFactorConfiguration
private boolean getBooleanConfig(final String name, final boolean
defaultValue) {
final TwoFactorConfiguration configuration =
configurationRepository.findByName(name);
- Boolean value = configuration.getBooleanValue();
+ Boolean value = BooleanUtils.toBooleanObject(configuration.getValue());
if (value == null) {
return defaultValue;
}
@@ -230,7 +232,7 @@ public class TwoFactorConfigurationServiceImpl implements
TwoFactorConfiguration
private String getStringConfig(final String name, final String
defaultValue) {
final TwoFactorConfiguration configuration =
configurationRepository.findByName(name);
- String value = configuration.getStringValue();
+ String value = configuration.getValue();
if (value == null) {
return defaultValue;
}
@@ -239,7 +241,7 @@ public class TwoFactorConfigurationServiceImpl implements
TwoFactorConfiguration
private Integer getIntegerConfig(final String name, final Integer
defaultValue) {
final TwoFactorConfiguration configuration =
configurationRepository.findByName(name);
- Integer value = configuration.getIntegerValue();
+ Integer value = NumberUtils.createInteger(configuration.getValue());
if (value == null) {
return defaultValue;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorServiceImpl.java
index 0134950b0..33223e2af 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorServiceImpl.java
@@ -197,7 +197,7 @@ public class TwoFactorServiceImpl implements
TwoFactorService {
return null;
}
- return new
OTPDeliveryMethod(TwoFactorConstants.SMS_DELIVERY_METHOD_NAME, mobileNo);
+ return new
OTPDeliveryMethod().setName(TwoFactorConstants.SMS_DELIVERY_METHOD_NAME).setTarget(mobileNo);
}
private OTPDeliveryMethod getEmailDeliveryMethodForUser(final AppUser
user) {
@@ -205,7 +205,7 @@ public class TwoFactorServiceImpl implements
TwoFactorService {
return null;
}
- return new
OTPDeliveryMethod(TwoFactorConstants.EMAIL_DELIVERY_METHOD_NAME,
user.getEmail());
+ return new
OTPDeliveryMethod().setName(TwoFactorConstants.EMAIL_DELIVERY_METHOD_NAME).setTarget(user.getEmail());
}
private OTPRequest generateNewToken(final OTPDeliveryMethod
deliveryMethod, final boolean extendedAccessToken) {