Skip to content

Commit 9f079f1

Browse files
authored
Merge pull request #7 from PSMRI/develop
latest pull
2 parents 9ea7d89 + d09e132 commit 9f079f1

9 files changed

Lines changed: 60 additions & 99 deletions

File tree

pom.xml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
</parent>
1212
<groupId>com.iemr.ecd</groupId>
1313
<artifactId>ecd-api</artifactId>
14-
<version>0.0.1</version>
14+
<version>3.1.0</version>
1515
<packaging>war</packaging>
16-
<name>ecd-api</name>
16+
<name>ECD-API</name>
1717
<description>ECD project</description>
1818
<properties>
1919
<environment>${ENV_VAR}</environment>
@@ -249,7 +249,7 @@
249249

250250

251251
<build>
252-
<finalName>ecdapi-v3.0.0</finalName>
252+
<finalName>${artifactId}-${version}</finalName>
253253
<plugins>
254254

255255
<plugin>
@@ -336,6 +336,20 @@
336336
</target>
337337
</configuration>
338338
</execution>
339+
<execution>
340+
<phase>process-resources</phase>
341+
<goals>
342+
<goal>run</goal>
343+
</goals>
344+
<id>clean-property-files</id>
345+
<configuration>
346+
<target>
347+
<delete>
348+
<file file="${source-properties}" />
349+
</delete>
350+
</target>
351+
</configuration>
352+
</execution>
339353
</executions>
340354
</plugin>
341355

src/main/environment/ecd_ci.properties

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,18 @@ secondary.datasource.url=@env.REPORTING_DATABASE_URL@
1111
secondary.datasource.driver-class-name=com.mysql.jdbc.Driver
1212

1313
##Beneficiary Registration Url
14-
registerBeneficiaryUrl=@env.COMMON_API@/beneficiary/create
14+
registerBeneficiaryUrl=@env.COMMON_API@beneficiary/create
1515

1616
##Beneficiary Edit Url
1717

18-
beneficiaryEditUrl =@env.COMMON_API_BASE_URL@/beneficiary/update
18+
beneficiaryEditUrl =@env.COMMON_API_BASE_URL@beneficiary/update
1919
jwt.secret=@env.JWT_SECRET_KEY@
2020

21-
beneficiaryEditUrl =@env.COMMON_API@/beneficiary/update
21+
beneficiaryEditUrl =@env.COMMON_API@beneficiary/update
2222

2323

2424
#ELK logging file name
25+
logging.path=logs/
2526
logging.file.name=@env.ECD_API_LOGGING_FILE_NAME@
2627

2728

src/main/environment/ecd_dev.properties

Lines changed: 0 additions & 24 deletions
This file was deleted.

src/main/environment/ecd_example.properties

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,7 @@ beneficiaryEditUrl =https:localhost:8083/beneficiary/update
2020
springdoc.api-docs.enabled=true
2121
springdoc.swagger-ui.enabled=true
2222

23+
jwt.secret=my-32-character-ultra-secure-and-ultra-long-secret
24+
#If both properties are set, only logging.file.name takes effect.
25+
logging.path=logs/
26+
logging.file.name=logs/ecd-api.log

src/main/environment/ecd_test.properties

Lines changed: 0 additions & 24 deletions
This file was deleted.

src/main/environment/ecd_uat.properties

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/main/java/com/iemr/ecd/utils/mapper/JwtUserIdValidationFilter.java

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -65,32 +65,47 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
6565
}
6666

6767
try {
68-
// Retrieve JWT token from cookies
69-
String jwtTokenFromCookie = getJwtTokenFromCookies(request);
70-
logger.info("JWT token from cookie: ");
71-
72-
// Determine which token (cookie or header) to validate
73-
String jwtToken = jwtTokenFromCookie != null ? jwtTokenFromCookie : jwtTokenFromHeader;
74-
if (jwtToken == null) {
75-
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "JWT token not found in cookies or headers");
76-
return;
68+
String jwtFromCookie = getJwtTokenFromCookies(request);
69+
String jwtFromHeader = request.getHeader("JwtToken");
70+
String authHeader = request.getHeader("Authorization");
71+
72+
if (jwtFromCookie != null) {
73+
logger.info("Validating JWT token from cookie");
74+
if (jwtAuthenticationUtil.validateUserIdAndJwtToken(jwtFromCookie)) {
75+
filterChain.doFilter(servletRequest, servletResponse);
76+
return;
77+
}
7778
}
7879

79-
// Validate JWT token and userId
80-
boolean isValid = jwtAuthenticationUtil.validateUserIdAndJwtToken(jwtToken);
80+
if (jwtFromHeader != null) {
81+
logger.info("Validating JWT token from header");
82+
if (jwtAuthenticationUtil.validateUserIdAndJwtToken(jwtFromHeader)) {
83+
filterChain.doFilter(servletRequest, servletResponse);
84+
return;
85+
}
86+
}
87+
String userAgent = request.getHeader("User-Agent");
88+
logger.info("User-Agent: " + userAgent);
8189

82-
if (isValid) {
83-
// If token is valid, allow the request to proceed
90+
if (userAgent != null && isMobileClient(userAgent) && authHeader != null) {
8491
filterChain.doFilter(servletRequest, servletResponse);
85-
} else {
86-
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Invalid JWT token");
92+
return;
8793
}
94+
95+
logger.warn("No valid authentication token found");
96+
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Unauthorized: Invalid or missing token");
97+
8898
} catch (Exception e) {
8999
logger.error("Authorization error: ", e);
90100
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Authorization error: " + e.getMessage());
91101
}
92102
}
93-
103+
private boolean isMobileClient(String userAgent) {
104+
if (userAgent == null)
105+
return false;
106+
userAgent = userAgent.toLowerCase();
107+
return userAgent.contains("okhttp");
108+
}
94109
private String getJwtTokenFromCookies(HttpServletRequest request) {
95110
Cookie[] cookies = request.getCookies();
96111
if (cookies != null) {

src/main/resources/application.properties

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ logging.level.web=INFO
3232
logging.level.org.springframework.web=INFO
3333
logging.level.org.hibernate=INFO
3434

35-
#If both properties are set, only logging.file.name takes effect.
36-
logging.path=logs/
37-
logging.file.name=logs/ecd-api.log
38-
3935
## multipart file size
4036
spring.http.multipart.max-request-size=10MB
4137
spring.http.multipart.max-file-size=10MB
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<jboss-web>
3+
<context-root>/ecd-api</context-root>
4+
</jboss-web>

0 commit comments

Comments
 (0)