From 5cbb1d5499cfa2ef0d47ed50c1e974e53f5a69f0 Mon Sep 17 00:00:00 2001 From: Keval Kanpariya Date: Mon, 14 Apr 2025 18:30:56 +0530 Subject: [PATCH 1/3] Global Cors config added, controller specific cors config removed --- src/main/environment/ecd_ci.properties | 2 + src/main/environment/ecd_example.properties | 2 + .../java/com/iemr/ecd/config/CorsConfig.java | 25 +++++++++++ .../AutoPreviewDialingController.java | 3 +- .../BeneficiaryCallHistoryController.java | 5 +-- .../BeneficiaryRegistrationController.java | 11 ++--- .../associate/CallClosureController.java | 6 +-- .../CallAllocationController.java | 4 -- .../CallConfigurationController.java | 4 -- .../dataupload/DataTemplateController.java | 2 - .../dataupload/DataUploadController.java | 2 - .../controller/masters/MastersController.java | 2 - .../CallStatisticsController.java | 2 - .../OutBoundWorklistController.java | 2 - .../AgentQualityAuditorMappingController.java | 2 - .../controller/quality/ChartsController.java | 2 - .../quality/GradeConfigurationController.java | 2 - .../quality/QualityAuditController.java | 2 - ...yAuditQuestionConfigurationController.java | 2 - ...tyAuditSectionConfigurationController.java | 2 - ...ampleSelectionConfigurationController.java | 2 - .../questionare/EcdQuestionareController.java | 2 - .../controller/reports/ReportController.java | 44 +++++++++---------- 23 files changed, 56 insertions(+), 76 deletions(-) create mode 100644 src/main/java/com/iemr/ecd/config/CorsConfig.java diff --git a/src/main/environment/ecd_ci.properties b/src/main/environment/ecd_ci.properties index dfcfdb0..4ca7bd5 100644 --- a/src/main/environment/ecd_ci.properties +++ b/src/main/environment/ecd_ci.properties @@ -28,3 +28,5 @@ logging.file.name=@env.ECD_API_LOGGING_FILE_NAME@ springdoc.api-docs.enabled=false springdoc.swagger-ui.enabled=false +cors.allowed-origins= + diff --git a/src/main/environment/ecd_example.properties b/src/main/environment/ecd_example.properties index bf43a4d..2d98242 100644 --- a/src/main/environment/ecd_example.properties +++ b/src/main/environment/ecd_example.properties @@ -16,3 +16,5 @@ registerBeneficiaryUrl=https:localhost:8083/beneficiary/create ##Beneficiary Edit Url beneficiaryEditUrl =https:localhost:8083/beneficiary/update + +cors.allowed-origins=http://localhost:*,http://127.0.0.1:* diff --git a/src/main/java/com/iemr/ecd/config/CorsConfig.java b/src/main/java/com/iemr/ecd/config/CorsConfig.java new file mode 100644 index 0000000..4669c7e --- /dev/null +++ b/src/main/java/com/iemr/ecd/config/CorsConfig.java @@ -0,0 +1,25 @@ +package com.iemr.ecd.config; + +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.split(",")) + .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") + .allowedHeaders("*") + .exposedHeaders("Authorization", "Jwttoken") // Explicitly expose headers if needed + .allowCredentials(true) + .maxAge(3600) + ; + } +} \ No newline at end of file diff --git a/src/main/java/com/iemr/ecd/controller/associate/AutoPreviewDialingController.java b/src/main/java/com/iemr/ecd/controller/associate/AutoPreviewDialingController.java index dcf712a..0c79cf4 100644 --- a/src/main/java/com/iemr/ecd/controller/associate/AutoPreviewDialingController.java +++ b/src/main/java/com/iemr/ecd/controller/associate/AutoPreviewDialingController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -47,7 +46,7 @@ @RestController @RequestMapping(value = "/autoPreviewDialing", headers = "Authorization") -@CrossOrigin() + public class AutoPreviewDialingController { @Autowired diff --git a/src/main/java/com/iemr/ecd/controller/associate/BeneficiaryCallHistoryController.java b/src/main/java/com/iemr/ecd/controller/associate/BeneficiaryCallHistoryController.java index d95689f..a85910f 100644 --- a/src/main/java/com/iemr/ecd/controller/associate/BeneficiaryCallHistoryController.java +++ b/src/main/java/com/iemr/ecd/controller/associate/BeneficiaryCallHistoryController.java @@ -25,7 +25,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -33,12 +32,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; - import com.iemr.ecd.dao.associate.Bencall; import com.iemr.ecd.dto.RequestBeneficiaryQuestionnaireResponseDTO; import com.iemr.ecd.service.associate.BeneficiaryCallHistoryImpl; import com.iemr.ecd.utils.advice.exception_handler.CustomExceptionResponse; - import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.responses.ApiResponse; @@ -46,7 +43,7 @@ @RestController @RequestMapping(value = "/callHistory", headers = "Authorization") -@CrossOrigin() + public class BeneficiaryCallHistoryController { @Autowired private BeneficiaryCallHistoryImpl beneficiaryCallHistoryImpl; diff --git a/src/main/java/com/iemr/ecd/controller/associate/BeneficiaryRegistrationController.java b/src/main/java/com/iemr/ecd/controller/associate/BeneficiaryRegistrationController.java index 4aa8c1d..4c18e29 100644 --- a/src/main/java/com/iemr/ecd/controller/associate/BeneficiaryRegistrationController.java +++ b/src/main/java/com/iemr/ecd/controller/associate/BeneficiaryRegistrationController.java @@ -25,17 +25,14 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -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.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - import com.iemr.ecd.dto.RequestBeneficiaryRegistrationDTO; import com.iemr.ecd.service.associate.BeneficiaryRegistrationServiceImpl; import com.iemr.ecd.utils.advice.exception_handler.CustomExceptionResponse; - import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.responses.ApiResponse; @@ -43,14 +40,12 @@ @RestController @RequestMapping(value = "/beneficary", headers = "Authorization") -@CrossOrigin() - public class BeneficiaryRegistrationController { @Autowired private BeneficiaryRegistrationServiceImpl beneficiaryRegistrationServiceImpl; - @CrossOrigin() + @PostMapping(value = "/registration", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Create beneficiary registration", description = "Desc - Create Beneficiary registration") @ApiResponses(value = { @@ -61,13 +56,13 @@ public class BeneficiaryRegistrationController { @ApiResponse(responseCode = CustomExceptionResponse.DB_EXCEPTION_SC_V, description = CustomExceptionResponse.DB_EXCEPTION_SC), @ApiResponse(responseCode = CustomExceptionResponse.BAD_REQUEST_SC_V, description = CustomExceptionResponse.BAD_REQUEST_SC) }) public ResponseEntity beneficiaryRegistration(@RequestBody RequestBeneficiaryRegistrationDTO request, - @RequestHeader(value = "Authorization") String Authorization) { + @RequestHeader(value = "Authorization") String Authorization) { return new ResponseEntity<>(beneficiaryRegistrationServiceImpl.beneficiaryRegistration(request, Authorization), HttpStatus.OK); } - @CrossOrigin() + @PostMapping(value = "/updateBeneficiaryDetails", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Update beneficiary details", description = "Desc - Update Beneficiary details") @ApiResponses(value = { diff --git a/src/main/java/com/iemr/ecd/controller/associate/CallClosureController.java b/src/main/java/com/iemr/ecd/controller/associate/CallClosureController.java index a22a5d7..4905f87 100644 --- a/src/main/java/com/iemr/ecd/controller/associate/CallClosureController.java +++ b/src/main/java/com/iemr/ecd/controller/associate/CallClosureController.java @@ -25,16 +25,13 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -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; import org.springframework.web.bind.annotation.RestController; - import com.iemr.ecd.dto.associate.CallClosureDTO; import com.iemr.ecd.service.associate.CallClosureImpl; import com.iemr.ecd.utils.advice.exception_handler.CustomExceptionResponse; - import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.responses.ApiResponse; @@ -42,12 +39,11 @@ @RestController @RequestMapping(value = "/closure", headers = "Authorization") -@CrossOrigin() public class CallClosureController { @Autowired private CallClosureImpl callClosureImpl; - @CrossOrigin() + @PostMapping(value = "/closeCall", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Call closure", description = "Desc - Call closure") @ApiResponses(value = { diff --git a/src/main/java/com/iemr/ecd/controller/callallocation/CallAllocationController.java b/src/main/java/com/iemr/ecd/controller/callallocation/CallAllocationController.java index 15b49c0..8784d14 100644 --- a/src/main/java/com/iemr/ecd/controller/callallocation/CallAllocationController.java +++ b/src/main/java/com/iemr/ecd/controller/callallocation/CallAllocationController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -35,14 +34,12 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - import com.iemr.ecd.dto.OutboundCallsDTO; import com.iemr.ecd.dto.RequestCallAllocationDTO; import com.iemr.ecd.dto.supervisor.ResponseEligibleCallRecordsDTO; import com.iemr.ecd.service.call_conf_allocation.CallAllocationImpl; import com.iemr.ecd.utils.advice.exception_handler.CustomExceptionResponse; import com.iemr.ecd.utils.advice.exception_handler.ECDException; - import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.responses.ApiResponse; @@ -50,7 +47,6 @@ @RestController @RequestMapping(value = "/callAllocation", headers = "Authorization") -@CrossOrigin() public class CallAllocationController { @Autowired diff --git a/src/main/java/com/iemr/ecd/controller/callallocation/CallConfigurationController.java b/src/main/java/com/iemr/ecd/controller/callallocation/CallConfigurationController.java index 5307e0b..3b2426b 100644 --- a/src/main/java/com/iemr/ecd/controller/callallocation/CallConfigurationController.java +++ b/src/main/java/com/iemr/ecd/controller/callallocation/CallConfigurationController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -35,12 +34,10 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - import com.iemr.ecd.dao.CallConfiguration; import com.iemr.ecd.dto.CallSectionMappingDTO; import com.iemr.ecd.service.call_conf_allocation.CallConfigurationImpl; import com.iemr.ecd.utils.advice.exception_handler.CustomExceptionResponse; - import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.responses.ApiResponse; @@ -48,7 +45,6 @@ @RestController @RequestMapping(value = "/callConfiguration", headers = "Authorization") -@CrossOrigin() public class CallConfigurationController { @Autowired diff --git a/src/main/java/com/iemr/ecd/controller/dataupload/DataTemplateController.java b/src/main/java/com/iemr/ecd/controller/dataupload/DataTemplateController.java index b7718b0..487947e 100644 --- a/src/main/java/com/iemr/ecd/controller/dataupload/DataTemplateController.java +++ b/src/main/java/com/iemr/ecd/controller/dataupload/DataTemplateController.java @@ -29,7 +29,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -48,7 +47,6 @@ @RestController @RequestMapping(value = "/dataTemplate", headers = "Authorization") -@CrossOrigin() public class DataTemplateController { @Autowired diff --git a/src/main/java/com/iemr/ecd/controller/dataupload/DataUploadController.java b/src/main/java/com/iemr/ecd/controller/dataupload/DataUploadController.java index e65d229..d043ec8 100644 --- a/src/main/java/com/iemr/ecd/controller/dataupload/DataUploadController.java +++ b/src/main/java/com/iemr/ecd/controller/dataupload/DataUploadController.java @@ -25,7 +25,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -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.RequestHeader; @@ -41,7 +40,6 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses; @RestController -@CrossOrigin() public class DataUploadController { @Autowired diff --git a/src/main/java/com/iemr/ecd/controller/masters/MastersController.java b/src/main/java/com/iemr/ecd/controller/masters/MastersController.java index eced35c..b1642ba 100644 --- a/src/main/java/com/iemr/ecd/controller/masters/MastersController.java +++ b/src/main/java/com/iemr/ecd/controller/masters/MastersController.java @@ -26,7 +26,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestHeader; @@ -60,7 +59,6 @@ @RestController @RequestMapping(value = "/master", headers = "Authorization") -@CrossOrigin() public class MastersController { @Autowired private MasterServiceImpl masterServiceImpl; diff --git a/src/main/java/com/iemr/ecd/controller/outboundworklist/CallStatisticsController.java b/src/main/java/com/iemr/ecd/controller/outboundworklist/CallStatisticsController.java index 892cf53..e6b9c05 100644 --- a/src/main/java/com/iemr/ecd/controller/outboundworklist/CallStatisticsController.java +++ b/src/main/java/com/iemr/ecd/controller/outboundworklist/CallStatisticsController.java @@ -25,7 +25,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -42,7 +41,6 @@ @RestController @RequestMapping(value = "/agent", headers = "Authorization") -@CrossOrigin() public class CallStatisticsController { @Autowired diff --git a/src/main/java/com/iemr/ecd/controller/outboundworklist/OutBoundWorklistController.java b/src/main/java/com/iemr/ecd/controller/outboundworklist/OutBoundWorklistController.java index 0465259..b1b6f8e 100644 --- a/src/main/java/com/iemr/ecd/controller/outboundworklist/OutBoundWorklistController.java +++ b/src/main/java/com/iemr/ecd/controller/outboundworklist/OutBoundWorklistController.java @@ -28,7 +28,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -48,7 +47,6 @@ @RestController @RequestMapping(value = "/outbound-worklist", headers = "Authorization") -@CrossOrigin() public class OutBoundWorklistController { @Autowired diff --git a/src/main/java/com/iemr/ecd/controller/quality/AgentQualityAuditorMappingController.java b/src/main/java/com/iemr/ecd/controller/quality/AgentQualityAuditorMappingController.java index cf8dd50..9f78961 100644 --- a/src/main/java/com/iemr/ecd/controller/quality/AgentQualityAuditorMappingController.java +++ b/src/main/java/com/iemr/ecd/controller/quality/AgentQualityAuditorMappingController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -47,7 +46,6 @@ @RestController @RequestMapping(value = "/agentQualityAuditorMap", headers = "Authorization") -@CrossOrigin() public class AgentQualityAuditorMappingController { @Autowired private AgentQualityAuditorMappingImpl agentQualityAuditorMappingImpl; diff --git a/src/main/java/com/iemr/ecd/controller/quality/ChartsController.java b/src/main/java/com/iemr/ecd/controller/quality/ChartsController.java index d11aa8f..45f62e0 100644 --- a/src/main/java/com/iemr/ecd/controller/quality/ChartsController.java +++ b/src/main/java/com/iemr/ecd/controller/quality/ChartsController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -44,7 +43,6 @@ @RestController @RequestMapping(value = "/charts", headers = "Authorization") -@CrossOrigin() public class ChartsController { @Autowired diff --git a/src/main/java/com/iemr/ecd/controller/quality/GradeConfigurationController.java b/src/main/java/com/iemr/ecd/controller/quality/GradeConfigurationController.java index 158f60b..87e6267 100644 --- a/src/main/java/com/iemr/ecd/controller/quality/GradeConfigurationController.java +++ b/src/main/java/com/iemr/ecd/controller/quality/GradeConfigurationController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -47,7 +46,6 @@ @RestController @RequestMapping(value = "/gradeConfiguration", headers = "Authorization") -@CrossOrigin() public class GradeConfigurationController { @Autowired diff --git a/src/main/java/com/iemr/ecd/controller/quality/QualityAuditController.java b/src/main/java/com/iemr/ecd/controller/quality/QualityAuditController.java index b0575b2..a2540db 100644 --- a/src/main/java/com/iemr/ecd/controller/quality/QualityAuditController.java +++ b/src/main/java/com/iemr/ecd/controller/quality/QualityAuditController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -55,7 +54,6 @@ @RestController @RequestMapping(value = "/qualityAudit", headers = "Authorization") -@CrossOrigin() public class QualityAuditController { @Autowired private QualityAuditImpl qualityAuditImpl; diff --git a/src/main/java/com/iemr/ecd/controller/quality/QualityAuditQuestionConfigurationController.java b/src/main/java/com/iemr/ecd/controller/quality/QualityAuditQuestionConfigurationController.java index 37afddb..6208172 100644 --- a/src/main/java/com/iemr/ecd/controller/quality/QualityAuditQuestionConfigurationController.java +++ b/src/main/java/com/iemr/ecd/controller/quality/QualityAuditQuestionConfigurationController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -48,7 +47,6 @@ @RestController @RequestMapping(value = "/questionnaireConfiguration", headers = "Authorization") -@CrossOrigin() public class QualityAuditQuestionConfigurationController { @Autowired private QualityAuditQuestionConfigurationImpl qualityAuditQuestionConfigurationImpl; diff --git a/src/main/java/com/iemr/ecd/controller/quality/QualityAuditSectionConfigurationController.java b/src/main/java/com/iemr/ecd/controller/quality/QualityAuditSectionConfigurationController.java index 249eb91..0ab1b90 100644 --- a/src/main/java/com/iemr/ecd/controller/quality/QualityAuditSectionConfigurationController.java +++ b/src/main/java/com/iemr/ecd/controller/quality/QualityAuditSectionConfigurationController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -47,7 +46,6 @@ @RestController @RequestMapping(value = "/sectionConfiguration", headers = "Authorization") -@CrossOrigin() public class QualityAuditSectionConfigurationController { @Autowired private QualityAuditSectionConfigurationImpl qualityAuditSectionConfigurationImpl; diff --git a/src/main/java/com/iemr/ecd/controller/quality/SampleSelectionConfigurationController.java b/src/main/java/com/iemr/ecd/controller/quality/SampleSelectionConfigurationController.java index b117ee0..38d168b 100644 --- a/src/main/java/com/iemr/ecd/controller/quality/SampleSelectionConfigurationController.java +++ b/src/main/java/com/iemr/ecd/controller/quality/SampleSelectionConfigurationController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -47,7 +46,6 @@ @RestController @RequestMapping(value = "/sampleSelectionConfiguration", headers = "Authorization") -@CrossOrigin() public class SampleSelectionConfigurationController { @Autowired private SampleSelectionConfigurationImpl sampleSelectionConfigurationImpl; diff --git a/src/main/java/com/iemr/ecd/controller/questionare/EcdQuestionareController.java b/src/main/java/com/iemr/ecd/controller/questionare/EcdQuestionareController.java index d359959..506645f 100644 --- a/src/main/java/com/iemr/ecd/controller/questionare/EcdQuestionareController.java +++ b/src/main/java/com/iemr/ecd/controller/questionare/EcdQuestionareController.java @@ -27,7 +27,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -56,7 +55,6 @@ @RestController @RequestMapping(value = "/Questionnaire", headers = "Authorization") -@CrossOrigin() public class EcdQuestionareController { @Autowired diff --git a/src/main/java/com/iemr/ecd/controller/reports/ReportController.java b/src/main/java/com/iemr/ecd/controller/reports/ReportController.java index 88fd148..2100f1c 100644 --- a/src/main/java/com/iemr/ecd/controller/reports/ReportController.java +++ b/src/main/java/com/iemr/ecd/controller/reports/ReportController.java @@ -30,7 +30,6 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -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; @@ -48,7 +47,6 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; -@CrossOrigin @RequestMapping({ "/ecdReportController" }) @RestController public class ReportController { @@ -87,7 +85,7 @@ public ResponseEntity getCallDetailsReport(@RequestBody String jsonReque } } - @CrossOrigin + @Operation(summary = "Get ECD call summary report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDCallSummaryReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getCallSummaryReport(@RequestBody String jsonRequest) { @@ -111,7 +109,7 @@ public ResponseEntity getCallSummaryReport(@RequestBody String jsonReque } } - @CrossOrigin + @Operation(summary = "Get ECD cumulative district report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDCumulativeDistrictReport", method = RequestMethod.POST) public ResponseEntity getCumulativeDistrictReport(@RequestBody String jsonRequest) { @@ -136,7 +134,7 @@ public ResponseEntity getCumulativeDistrictReport(@RequestBody String js } } - @CrossOrigin + @Operation(summary = "Get ECD beneficiary wise follow up details report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDBeneficiarywisefollowupdetailsReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getBeneficiarywisefollowupdetails(@RequestBody String jsonRequest) { @@ -160,7 +158,7 @@ public ResponseEntity getBeneficiarywisefollowupdetails(@RequestBody Str } } - @CrossOrigin + @Operation(summary = "Get ECD call detail report unique", description = "Desc - Get call details report") @RequestMapping(value = "/getECDCallDetailReportUnique", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getCallDetailReportUnique(@RequestBody String requestObj) { @@ -185,7 +183,7 @@ public ResponseEntity getCallDetailReportUnique(@RequestBody String requ } } - @CrossOrigin + @Operation(summary = "Get ECD birth defect report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDBirthDefectReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getBirthDefectReport(@RequestBody String jsonRequest) { @@ -210,7 +208,7 @@ public ResponseEntity getBirthDefectReport(@RequestBody String jsonReque } } - @CrossOrigin + @Operation(summary = "Get ECD aasha home visit gap report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDAashaHomeVisitGapReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getAashaHomeVisitGapReport(@RequestBody String jsonRequest) { @@ -235,7 +233,7 @@ public ResponseEntity getAashaHomeVisitGapReport(@RequestBody String jso } } - @CrossOrigin + @Operation(summary = "Get ECD calcium IFA tablet non adherence report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDCalciumIFATabNonadherenceReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getCalciumIFATabNonadherenceReport(@RequestBody String jsonRequest) { @@ -260,7 +258,7 @@ public ResponseEntity getCalciumIFATabNonadherenceReport(@RequestBody St } } - @CrossOrigin + @Operation(summary = "Get ECD absence in VHSND report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDAbsenceInVHSNDReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getAbsenceInVHSNDReport(@RequestBody String jsonRequest) { @@ -285,7 +283,7 @@ public ResponseEntity getAbsenceInVHSNDReport(@RequestBody String jsonRe } } - @CrossOrigin + @Operation(summary = "Get ECD vaccine drop out identified report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDVaccineDropOutIdentifiedReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getVaccineDropOutIdentifiedReport(@RequestBody String jsonRequest) { @@ -310,7 +308,7 @@ public ResponseEntity getVaccineDropOutIdentifiedReport(@RequestBody Str } } - @CrossOrigin + @Operation(summary = "Get ECD vaccine left out identified report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDVaccineLeftOutIdentifiedReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getVaccineLeftOutIdentifiedReport(@RequestBody String jsonRequest) { @@ -336,7 +334,7 @@ public ResponseEntity getVaccineLeftOutIdentifiedReport(@RequestBody Str } } - @CrossOrigin + @Operation(summary = "Get ECD developmental delay report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDDevelopmentalDelayReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getDevelopmentalDelayReport(@RequestBody String jsonRequest) { @@ -361,7 +359,7 @@ public ResponseEntity getDevelopmentalDelayReport(@RequestBody String js } } - @CrossOrigin + @Operation(summary = "Get ECD abortion report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDAbortionReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getAbortionReport(@RequestBody String jsonRequest) { @@ -386,7 +384,7 @@ public ResponseEntity getAbortionReport(@RequestBody String jsonRequest) } } - @CrossOrigin + @Operation(summary = "Get ECD delivery status report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDDeliveryStatusReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getDeliveryStatusReport(@RequestBody String jsonRequest) { @@ -411,7 +409,7 @@ public ResponseEntity getDeliveryStatusReport(@RequestBody String jsonRe } } - @CrossOrigin + @Operation(summary = "Get ECD high risk pregnancy cases identified report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDHRPCasesIdentifiedReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getHRPCasesIdentifiedReport(@RequestBody String jsonRequest) { @@ -436,7 +434,7 @@ public ResponseEntity getHRPCasesIdentifiedReport(@RequestBody String js } } - @CrossOrigin + @Operation(summary = "Get ECD infants high risk report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDInfantsHighRiskReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getInfantsHighRiskReport(@RequestBody String jsonRequest) { @@ -461,7 +459,7 @@ public ResponseEntity getInfantsHighRiskReport(@RequestBody String jsonR } } - @CrossOrigin + @Operation(summary = "Get ECD maternal death report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDMaternalDeathReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getMaternalDeathReport(@RequestBody String jsonRequest) { @@ -486,7 +484,7 @@ public ResponseEntity getMaternalDeathReport(@RequestBody String jsonReq } } - @CrossOrigin + @Operation(summary = "Get ECD still birth report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDStillBirthReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getStillBirthReport(@RequestBody String jsonRequest) { @@ -511,7 +509,7 @@ public ResponseEntity getStillBirthReport(@RequestBody String jsonReques } } - @CrossOrigin + @Operation(summary = "Get ECD baby death report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDBabyDeathReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getBabyDeathReport(@RequestBody String jsonRequest) { @@ -536,7 +534,7 @@ public ResponseEntity getBabyDeathReport(@RequestBody String jsonRequest } } - @CrossOrigin + @Operation(summary = "Get ECD not connected phone list diffrent format report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDNotConnectedPhonelistDiffformatReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getNotConnectedPhonelistDiffformatReport(@RequestBody String jsonRequest) { @@ -561,7 +559,7 @@ public ResponseEntity getNotConnectedPhonelistDiffformatReport(@RequestB } } - @CrossOrigin + @Operation(summary = "Get ECDJSY related complaints report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDJSYRelatedComplaintsReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getJSYRelatedComplaintsReport(@RequestBody String jsonRequest) { @@ -586,7 +584,7 @@ public ResponseEntity getJSYRelatedComplaintsReport(@RequestBody String } } - @CrossOrigin + @Operation(summary = "Get ECD miscarriage report", description = "Desc - Get call details report") @RequestMapping(value = "/getECDMiscarriageReport", method = RequestMethod.POST, headers = "Authorization") public ResponseEntity getMiscarriageReport(@RequestBody String jsonRequest) { From ccd86fb26f391c99563b171282637577b43e9f3d Mon Sep 17 00:00:00 2001 From: Keval Kanpariya <74661970+kevalkanp1011@users.noreply.github.com> Date: Tue, 15 Apr 2025 22:16:18 +0530 Subject: [PATCH 2/3] Update ecd_ci.properties value assign:- @CORS_ALLOWED_ORIGINS@ --- src/main/environment/ecd_ci.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/environment/ecd_ci.properties b/src/main/environment/ecd_ci.properties index 4ca7bd5..a507c57 100644 --- a/src/main/environment/ecd_ci.properties +++ b/src/main/environment/ecd_ci.properties @@ -28,5 +28,5 @@ logging.file.name=@env.ECD_API_LOGGING_FILE_NAME@ springdoc.api-docs.enabled=false springdoc.swagger-ui.enabled=false -cors.allowed-origins= +cors.allowed-origins=@CORS_ALLOWED_ORIGINS@ From 672b0af980783fec51bbbea955076ea736bf5032 Mon Sep 17 00:00:00 2001 From: Keval Kanpariya Date: Thu, 8 May 2025 21:54:55 +0530 Subject: [PATCH 3/3] Global Cors config added, controller specific cors config removed --- src/main/environment/ecd_example.properties | 2 +- .../java/com/iemr/ecd/config/CorsConfig.java | 2 +- .../com/iemr/ecd/utils/DynamicCorsFilter.java | 37 +++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/iemr/ecd/utils/DynamicCorsFilter.java diff --git a/src/main/environment/ecd_example.properties b/src/main/environment/ecd_example.properties index 2d98242..2b79669 100644 --- a/src/main/environment/ecd_example.properties +++ b/src/main/environment/ecd_example.properties @@ -17,4 +17,4 @@ registerBeneficiaryUrl=https:localhost:8083/beneficiary/create ##Beneficiary Edit Url beneficiaryEditUrl =https:localhost:8083/beneficiary/update -cors.allowed-origins=http://localhost:*,http://127.0.0.1:* +cors.allowed-origins=http://localhost:8084 diff --git a/src/main/java/com/iemr/ecd/config/CorsConfig.java b/src/main/java/com/iemr/ecd/config/CorsConfig.java index 4669c7e..2a55d39 100644 --- a/src/main/java/com/iemr/ecd/config/CorsConfig.java +++ b/src/main/java/com/iemr/ecd/config/CorsConfig.java @@ -14,7 +14,7 @@ public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") - .allowedOriginPatterns(allowedOrigins.split(",")) + .allowedOrigins(allowedOrigins) .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .allowedHeaders("*") .exposedHeaders("Authorization", "Jwttoken") // Explicitly expose headers if needed diff --git a/src/main/java/com/iemr/ecd/utils/DynamicCorsFilter.java b/src/main/java/com/iemr/ecd/utils/DynamicCorsFilter.java new file mode 100644 index 0000000..a9ba17a --- /dev/null +++ b/src/main/java/com/iemr/ecd/utils/DynamicCorsFilter.java @@ -0,0 +1,37 @@ +package com.iemr.ecd.utils; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.web.filter.OncePerRequestFilter; + +import java.io.IOException; +import java.util.Arrays; + +@Component +public class DynamicCorsFilter extends OncePerRequestFilter { + + @Value("${cors.allowed-origins}") + private String[] allowedOrigins; + + @Override + protected void doFilterInternal(HttpServletRequest request, + HttpServletResponse response, + FilterChain filterChain) + throws ServletException, IOException { + + String origin = request.getHeader("Origin"); + if (origin != null && Arrays.asList(allowedOrigins).contains(origin)) { + response.setHeader("Access-Control-Allow-Origin", origin); + } + + if ("OPTIONS".equalsIgnoreCase(request.getMethod())) { + response.setStatus(HttpServletResponse.SC_OK); + } else { + filterChain.doFilter(request, response); + } + } +} \ No newline at end of file