diff --git a/pom.xml b/pom.xml
index c5e15820..a9499b72 100644
--- a/pom.xml
+++ b/pom.xml
@@ -220,6 +220,26 @@
spring-web
6.1.12
+
+
+ io.jsonwebtoken
+ jjwt-api
+ 0.12.6
+
+
+
+ io.jsonwebtoken
+ jjwt-impl
+ 0.12.6
+ runtime
+
+
+
+ io.jsonwebtoken
+ jjwt-jackson
+ 0.12.6
+ runtime
+
diff --git a/src/main/environment/1097_ci.properties b/src/main/environment/1097_ci.properties
index a2b79037..d046eeec 100644
--- a/src/main/environment/1097_ci.properties
+++ b/src/main/environment/1097_ci.properties
@@ -11,13 +11,15 @@ logging.file.name=@env.IDENTITY_API_1097_LOGGING_FILE_NAME@
springdoc.api-docs.enabled=@env.SWAGGER_DOC_ENABLED@
springdoc.swagger-ui.enabled=@env.SWAGGER_DOC_ENABLED@
-jwt.secret=@JWT_SECRET_KEY@
+jwt.secret=@env.JWT_SECRET_KEY@
# TM Config
-tm-url=@TM_API@
+tm-url=@env.TM_API@
# FHIR Config
-fhir-url=@FHIR_API@
+fhir-url=@env.FHIR_API@
# Redis Config
-spring.redis.host=@env.REDIS_HOST@
\ No newline at end of file
+spring.redis.host=@env.REDIS_HOST@
+
+cors.allowed-origins=@env.CORS_ALLOWED_ORIGINS@
diff --git a/src/main/environment/1097_docker.properties b/src/main/environment/1097_docker.properties
index 5510dfce..471665aa 100644
--- a/src/main/environment/1097_docker.properties
+++ b/src/main/environment/1097_docker.properties
@@ -19,4 +19,6 @@ tm-url=${TM_API}
fhir-url=${FHIR_API}
# Redis Config
-spring.redis.host=${REDIS_HOST}
\ No newline at end of file
+spring.redis.host=${REDIS_HOST}
+
+cors.allowed-origins=${CORS_ALLOWED_ORIGINS}
diff --git a/src/main/environment/1097_example.properties b/src/main/environment/1097_example.properties
index 9eeee5c4..d1f66965 100644
--- a/src/main/environment/1097_example.properties
+++ b/src/main/environment/1097_example.properties
@@ -17,4 +17,5 @@ tm-url=http://localhost:8089/
fhir-url=http://localhost:8093/
# Redis Config
-spring.redis.host=localhost
\ No newline at end of file
+spring.redis.host=localhost
+cors.allowed-origins=http://localhost:*
diff --git a/src/main/environment/common_ci.properties b/src/main/environment/common_ci.properties
index debf33c4..75ad8759 100644
--- a/src/main/environment/common_ci.properties
+++ b/src/main/environment/common_ci.properties
@@ -11,13 +11,15 @@ logging.file.name=@env.IDENTITY_API_LOGGING_FILE_NAME@
springdoc.api-docs.enabled=@env.SWAGGER_DOC_ENABLED@
springdoc.swagger-ui.enabled=@env.SWAGGER_DOC_ENABLED@
-jwt.secret=@JWT_SECRET_KEY@
+jwt.secret=@env.JWT_SECRET_KEY@
# TM Config
-tm-url=@TM_API@
+tm-url=@env.TM_API@
# FHIR Config
-fhir-url=@FHIR_API@
+fhir-url=@env.FHIR_API@
# Redis Config
-spring.redis.host=@env.REDIS_HOST@
\ No newline at end of file
+spring.redis.host=@env.REDIS_HOST@
+
+cors.allowed-origins=@env.CORS_ALLOWED_ORIGINS@
diff --git a/src/main/environment/common_docker.properties b/src/main/environment/common_docker.properties
index 4409906e..90942c28 100644
--- a/src/main/environment/common_docker.properties
+++ b/src/main/environment/common_docker.properties
@@ -20,4 +20,6 @@ tm-url=${TM_API}
fhir-url=${FHIR_API}
# Redis Config
-spring.redis.host=${REDIS_HOST}
\ No newline at end of file
+spring.redis.host=${REDIS_HOST}
+
+cors.allowed-origins=${CORS_ALLOWED_ORIGINS}
diff --git a/src/main/environment/common_example.properties b/src/main/environment/common_example.properties
index ca58c85c..ad15db00 100644
--- a/src/main/environment/common_example.properties
+++ b/src/main/environment/common_example.properties
@@ -16,4 +16,5 @@ tm-url=http://localhost:8089/
fhir-url=http://localhost:8093/
# Redis Config
-spring.redis.host=localhost
\ No newline at end of file
+spring.redis.host=localhost
+cors.allowed-origins=http://localhost:*
diff --git a/src/main/java/com/iemr/common/identity/config/CorsConfig.java b/src/main/java/com/iemr/common/identity/config/CorsConfig.java
new file mode 100644
index 00000000..d52f7e35
--- /dev/null
+++ b/src/main/java/com/iemr/common/identity/config/CorsConfig.java
@@ -0,0 +1,23 @@
+package com.iemr.common.identity.config;
+
+import java.util.Arrays;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class CorsConfig implements WebMvcConfigurer {
+ @Value("${cors.allowed-origins}")
+ private String allowedOrigins;
+
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ registry.addMapping("/**").allowedOriginPatterns(
+ allowedOrigins != null && !allowedOrigins.trim().isEmpty() ? Arrays.stream(allowedOrigins.split(","))
+ .map(String::trim).filter(s -> !s.isEmpty()).toArray(String[]::new) : new String[0])
+ .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS").allowedHeaders("*")
+ .exposedHeaders("Authorization", "Jwttoken").allowCredentials(true).maxAge(3600);
+ }
+}
diff --git a/src/main/java/com/iemr/common/identity/controller/IdentityController.java b/src/main/java/com/iemr/common/identity/controller/IdentityController.java
index 03484813..4ac603ae 100644
--- a/src/main/java/com/iemr/common/identity/controller/IdentityController.java
+++ b/src/main/java/com/iemr/common/identity/controller/IdentityController.java
@@ -33,7 +33,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -83,7 +82,6 @@ public class IdentityController {
@Autowired
IdentityMapper mapper;
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Get beneficiaries by advance search")
@PostMapping(path = "/advanceSearch", headers = "Authorization")
public String getBeneficiaries(
@@ -112,7 +110,6 @@ public String getBeneficiaries(
return response;
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Search beneficiary based on beneficiary registration id")
@PostMapping(path = "/getByBenRegId", headers = "Authorization")
public String getBeneficiariesByBeneficiaryRegId(
@@ -137,7 +134,6 @@ public String getBeneficiariesByBeneficiaryRegId(
return response;
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Search identity based on beneficiary registration id")
@PostMapping(path = "/getByBenId", headers = "Authorization")
public String getBeneficiariesByBeneficiaryId(
@@ -172,7 +168,6 @@ public String getBeneficiariesByBeneficiaryId(
return response;
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Search beneficiary based on phone number")
@PostMapping(path = "/getByPhoneNum", headers = "Authorization")
public String getBeneficiariesByPhoneNum(
@@ -203,7 +198,6 @@ public String getBeneficiariesByPhoneNum(
return response;
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Search beneficiary based on health ID / ABHA Address")
@PostMapping(path = "/getByAbhaAddress", headers = "Authorization")
public String searhBeneficiaryByABHAAddress(
@@ -235,7 +229,6 @@ public String searhBeneficiaryByABHAAddress(
return response;
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Search beneficiary based on health ID number / ABHA ID number")
@PostMapping(path = "/getByAbhaIdNo", headers = "Authorization")
public String searhBeneficiaryByABHAIdNo(
@@ -267,7 +260,6 @@ public String searhBeneficiaryByABHAIdNo(
return response;
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Search beneficiary based on family id")
@PostMapping(path = "/searchByFamilyId", headers = "Authorization")
public String searhBeneficiaryByFamilyId(
@@ -297,7 +289,6 @@ public String searhBeneficiaryByFamilyId(
}
// search beneficiary by lastModDate and districtID
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary ="Search beneficiary by villageId and last modified date-time")
@PostMapping(path = "/searchByVillageIdAndLastModifiedDate")
public String searchBeneficiaryByVillageIdAndLastModDate(
@@ -322,7 +313,6 @@ public String searchBeneficiaryByVillageIdAndLastModDate(
return response;
}
// search beneficiary by lastModDate and districtID
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary ="Get count of beneficiary by villageId and last modified date-time")
@PostMapping(path = "/countBenByVillageIdAndLastModifiedDate")
public String countBeneficiaryByVillageIdAndLastModDate(
@@ -342,7 +332,6 @@ public String countBeneficiaryByVillageIdAndLastModDate(
}
return response;
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Search beneficiary based on government identity number")
@PostMapping(path = "/searhByGovIdentity", headers = "Authorization")
public String searhBeneficiaryByGovIdentity(
@@ -376,7 +365,6 @@ public String searhBeneficiaryByGovIdentity(
* @param identityEditData
* @return
*/
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Edit identity by agent")
@PostMapping(path = "/edit", headers = "Authorization")
public String editIdentity(@Param(value = "{\r\n" + " \"eventTypeName\": \"String\",\r\n"
@@ -508,7 +496,6 @@ public String editIdentity(@Param(value = "{\r\n" + " \"eventTypeName\": \"Stri
* @param identityData
* @return
*/
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Create identity by agent")
@PostMapping(path = "/create", headers = "Authorization")
public String createIdentity(@Param(value = "{\r\n" + " \"eventTypeName\": \"String\",\r\n"
@@ -615,7 +602,6 @@ public String createIdentity(@Param(value = "{\r\n" + " \"eventTypeName\": \"St
return response;
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Reserve identity by agent")
@PostMapping(path = "/reserve", headers = "Authorization")
public String reserveIdentity(@RequestBody String reserveIdentity) {
@@ -635,7 +621,6 @@ public String reserveIdentity(@RequestBody String reserveIdentity) {
return response;
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Unreserve identity by agent")
@PostMapping(path = "/unreserve", headers = "Authorization")
public String unreserveIdentity(@RequestBody String unreserve) {
@@ -661,7 +646,6 @@ public String unreserveIdentity(@RequestBody String unreserve) {
* @param benRegIds
* @return
*/
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Get beneficiaries partial details by beneficiary registration id list")
@PostMapping(path = "/getByPartialBenRegIdList", headers = "Authorization")
public String getPartialBeneficiariesByBenRegIds(
@@ -693,7 +677,6 @@ public String getPartialBeneficiariesByBenRegIds(
* @param benRegIds
* @return
*/
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Get beneficiaries by beneficiary registration id")
@PostMapping(path = "/getByBenRegIdList", headers = "Authorization")
public String getBeneficiariesByBenRegIds(
@@ -792,7 +775,6 @@ public String getJsonAsString(Object obj) {
return sb.toString();
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Get finite beneficiaries")
@PostMapping(path = "/finiteSearch", headers = "Authorization")
public String getFiniteBeneficiaries(@RequestBody String searchFilter) {
@@ -816,7 +798,6 @@ public String getFiniteBeneficiaries(@RequestBody String searchFilter) {
}
// New API for getting beneficiary image only.
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Get beneficiary image by beneficiary registration id")
@PostMapping(path = "/benImageByBenRegID", headers = "Authorization")
public String getBeneficiaryImageByBenRegID(@RequestBody String identityData) {
@@ -830,7 +811,6 @@ public String getBeneficiaryImageByBenRegID(@RequestBody String identityData) {
return benImage;
}
- @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Edit education or community by agent")
@PostMapping(path = "/editEducationOrCommunity", headers = "Authorization")
public String editIdentityEducationOrCommunity(@Param(value = "{\r\n"
@@ -957,7 +937,6 @@ public String editIdentityEducationOrCommunity(@Param(value = "{\r\n"
}
}
- @CrossOrigin()
@Operation(summary = "Check available beneficary id in local server")
@GetMapping(path = "/checkAvailablBenIDLocalServer", headers = "Authorization")
public String checkAvailablBenIDLocalServer() {
@@ -972,7 +951,6 @@ public String checkAvailablBenIDLocalServer() {
return response.toString();
}
- // @CrossOrigin(origins = { "*commonapi*" })
@Operation(summary = "Save server generated beneficiary ID & beneficiary registration ID to local server")
@PostMapping(path = "/saveGeneratedBenIDToLocalServer", headers = "Authorization", consumes = "application/json", produces = "application/json")
public String saveGeneratedBenIDToLocalServer(
diff --git a/src/main/java/com/iemr/common/identity/controller/familyTagging/FamilyTaggingController.java b/src/main/java/com/iemr/common/identity/controller/familyTagging/FamilyTaggingController.java
index b1f117c7..19323611 100644
--- a/src/main/java/com/iemr/common/identity/controller/familyTagging/FamilyTaggingController.java
+++ b/src/main/java/com/iemr/common/identity/controller/familyTagging/FamilyTaggingController.java
@@ -24,7 +24,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -35,7 +34,6 @@
import io.swagger.v3.oas.annotations.Operation;
-@CrossOrigin
@RestController
@RequestMapping({ "/family" })
public class FamilyTaggingController {
@@ -43,7 +41,6 @@ public class FamilyTaggingController {
@Autowired
private FamilyTagService familyTagService;
- @CrossOrigin()
@Operation(summary = "Create and modify family tagging")
@PostMapping(value = { "/addTag" }, consumes = "application/json", produces = "application/json")
public String saveFamilyTagging(@RequestBody String comingReq) {
@@ -59,7 +56,6 @@ public String saveFamilyTagging(@RequestBody String comingReq) {
return response.toString();
}
- @CrossOrigin()
@Operation(summary = "Create family")
@PostMapping(value = { "/createFamily" }, consumes = "application/json", produces = "application/json")
public String createFamily(@RequestBody String comingReq) {
@@ -75,7 +71,6 @@ public String createFamily(@RequestBody String comingReq) {
return response.toString();
}
- @CrossOrigin()
@Operation(summary = "Search family")
@PostMapping(value = { "/searchFamily" }, consumes = "application/json", produces = "application/json")
public String searchFamily(@RequestBody String comingReq) {
@@ -91,7 +86,6 @@ public String searchFamily(@RequestBody String comingReq) {
return response.toString();
}
- @CrossOrigin()
@Operation(summary = "Get family members details")
@PostMapping(value = { "/getFamilyDetails" }, consumes = "application/json", produces = "application/json")
public String getFamilyDatails(@RequestBody String comingReq) {
@@ -107,7 +101,6 @@ public String getFamilyDatails(@RequestBody String comingReq) {
return response.toString();
}
- @CrossOrigin()
@Operation(summary = "Untag beneficiary from a family")
@PostMapping(value = { "/untag" }, consumes = "application/json", produces = "application/json")
public String untagFamily(@RequestBody String comingReq) {
@@ -123,7 +116,6 @@ public String untagFamily(@RequestBody String comingReq) {
return response.toString();
}
- @CrossOrigin()
@Operation(summary = "Edit beneficiary family details")
@PostMapping(value = { "/editFamilyTagging" }, consumes = "application/json", produces = "application/json")
public String editFamilyDetails(@RequestBody String comingReq) {
diff --git a/src/main/java/com/iemr/common/identity/controller/version/VersionController.java b/src/main/java/com/iemr/common/identity/controller/version/VersionController.java
index fdf973cd..4435c3db 100644
--- a/src/main/java/com/iemr/common/identity/controller/version/VersionController.java
+++ b/src/main/java/com/iemr/common/identity/controller/version/VersionController.java
@@ -28,7 +28,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -41,7 +40,6 @@ public class VersionController {
private Logger logger = LoggerFactory.getLogger(this.getClass().getSimpleName());
- @CrossOrigin()
@Operation(summary = "Get version information")
@GetMapping(value = "/version",consumes = "application/json", produces = "application/json")
public String versionInformation() {
diff --git a/src/main/java/com/iemr/common/identity/domain/User.java b/src/main/java/com/iemr/common/identity/domain/User.java
new file mode 100644
index 00000000..cf0f5053
--- /dev/null
+++ b/src/main/java/com/iemr/common/identity/domain/User.java
@@ -0,0 +1,147 @@
+package com.iemr.common.identity.domain;
+
+import java.sql.Timestamp;
+import java.time.LocalDate;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.google.gson.annotations.Expose;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import lombok.Data;
+@Entity
+@Table(name = "m_User")
+@JsonIgnoreProperties(ignoreUnknown = true)
+@Data
+public class User {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Expose
+ @Column(name="UserID")
+ private Integer userID;
+ @Expose
+ @Column(name="TitleID")
+ private Integer titleID;
+ @Expose
+ @Column(name="FirstName")
+ private String firstName;
+ @Expose
+ @Column(name="MiddleName")
+ private String middleName;
+ @Expose
+ @Column(name="LastName")
+ private String lastName;
+ @Expose
+ @Column(name="GenderID")
+ private Short genderID;
+
+ @Expose
+ @Column(name="MaritalStatusID")
+ private Integer maritalStatusID;
+ @Expose
+ @Column(name="DesignationID")
+ private Integer designationID;
+
+ @Column(name="AadhaarNo")
+ private String aadhaarNo;
+ @Column(name="PAN")
+ private String pAN;
+ @Expose
+ @Column(name="DOB")
+ private LocalDate dOB;
+ @Expose
+ @Column(name="DOJ")
+ private LocalDate dOJ;
+ @Expose
+ @Column(name="QualificationID")
+ private Integer qualificationID;
+ @Expose
+ @Column(name="HealthProfessionalID")
+ private String healthProfessionalID;
+ @Expose
+ @Column(name="UserName")
+ private String userName;
+ @JsonIgnore
+ @Column(name="Password")
+ private String password;
+ @Expose
+ @Column(name="IsExternal")
+ private Boolean isExternal;
+ @Expose
+ @Column(name="AgentID")
+ private String agentID;
+ @Expose
+ @Column(name="AgentPassword")
+ private String agentPassword;
+ @Expose
+ @Column(name="EmailID")
+ private String emailID;
+ @Expose
+ @Column(name="StatusID")
+ private Integer statusID;
+ @Expose
+ @Column(name="EmergencyContactPerson")
+ private String emergencyContactPerson;
+ @Expose
+ @Column(name="EmergencyContactNo")
+ private String emergencyContactNo;
+ @Expose
+ @Column(name="IsSupervisor")
+ private Boolean isSupervisor;
+ @Expose
+ @Column(name="Deleted",insertable = false, updatable = true)
+ private Boolean deleted;
+ @Expose
+ @Column(name="CreatedBy")
+ private String createdBy;
+ @Expose
+ @Column(name="EmployeeID")
+ private String employeeID;
+ @Expose
+ @Column(name="CreatedDate",insertable = false, updatable = false)
+ private Timestamp createdDate;
+ @Expose
+ @Column(name="ModifiedBy")
+ private String modifiedBy;
+ @Expose
+ @Column(name="LastModDate",insertable = false, updatable = false)
+ private Timestamp lastModDate;
+
+ @Expose
+ @Column(name="Remarks")
+ private String remarks;
+
+ @Expose
+ @Column(name="ContactNo")
+ private String contactNo;
+
+
+ @Expose
+ @Column(name="IsProviderAdmin")
+ private Boolean isProviderAdmin;
+
+ @Expose
+ @Column(name="ServiceProviderID")
+ private Integer serviceProviderID;
+
+
+
+ @Expose
+ @Column(name = "failed_attempt", insertable = false)
+ private Integer failedAttempt;
+ public User() {
+ // TODO Auto-generated constructor stub
+ }
+
+ public User(Integer userID, String userName) {
+ // TODO Auto-generated constructor stub
+ this.userID=userID;
+ this.userName=userName;
+ }
+
+}
diff --git a/src/main/java/com/iemr/common/identity/service/IdentityService.java b/src/main/java/com/iemr/common/identity/service/IdentityService.java
index 531913e8..a0b8761f 100644
--- a/src/main/java/com/iemr/common/identity/service/IdentityService.java
+++ b/src/main/java/com/iemr/common/identity/service/IdentityService.java
@@ -1747,7 +1747,7 @@ public int importBenIdToLocalServer(List benIdImportDTOList) {
jdbcTemplate = getJdbcTemplate();
List