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) {


Reply via email to