Skip to content

Commit 357f765

Browse files
authored
Merge pull request #76 from ravishanigarapu/develop
AMM-1456 : JwtToken skiped if it not present from mobile
2 parents 6599d15 + d2d44c4 commit 357f765

File tree

1 file changed

+31
-16
lines changed

1 file changed

+31
-16
lines changed

src/main/java/com/iemr/admin/utils/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: ");
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) {

0 commit comments

Comments
 (0)