Skip to content

Commit 5a7c6bf

Browse files
committed
fix: amm-1927 coderabbit fixes
1 parent 608773a commit 5a7c6bf

1 file changed

Lines changed: 23 additions & 20 deletions

File tree

src/main/java/com/iemr/admin/utils/JwtUserIdValidationFilter.java

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -69,27 +69,23 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
6969
String path = request.getRequestURI();
7070
String contextPath = request.getContextPath();
7171

72+
// Set CORS headers and handle OPTIONS request only if origin is valid and allowed
7273
if (origin != null && isOriginAllowed(origin)) {
73-
response.setHeader("Access-Control-Allow-Origin", origin); // Never use wildcard
74-
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS");
75-
response.setHeader("Access-Control-Allow-Headers",
76-
"Authorization, Content-Type, Accept, Jwttoken, serverAuthorization, ServerAuthorization, serverauthorization, Serverauthorization");
77-
response.setHeader("Access-Control-Allow-Credentials", "true");
78-
response.setHeader("Access-Control-Max-Age", "3600");
74+
addCorsHeaders(response, origin);
7975
logger.info("Origin Validated | Origin: {} | Method: {} | URI: {}", origin, method, uri);
76+
77+
if ("OPTIONS".equalsIgnoreCase(method)) {
78+
// OPTIONS (preflight) - respond with full allowed methods
79+
response.setStatus(HttpServletResponse.SC_OK);
80+
return;
81+
}
8082
} else {
8183
logger.warn("Origin [{}] is NOT allowed. CORS headers NOT added.", origin);
82-
}
83-
84-
if ("OPTIONS".equalsIgnoreCase(method)) {
85-
// OPTIONS (preflight) - respond with full allowed methods
86-
response.setHeader("Access-Control-Allow-Origin", origin);
87-
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS");
88-
response.setHeader("Access-Control-Allow-Headers",
89-
"Authorization, Content-Type, Accept, Jwttoken, serverAuthorization, ServerAuthorization, serverauthorization, Serverauthorization");
90-
response.setHeader("Access-Control-Allow-Credentials", "true");
91-
response.setStatus(HttpServletResponse.SC_OK);
92-
return;
84+
85+
if ("OPTIONS".equalsIgnoreCase(method)) {
86+
response.sendError(HttpServletResponse.SC_FORBIDDEN, "Origin not allowed for OPTIONS request");
87+
return;
88+
}
9389
}
9490

9591
logger.info("JwtUserIdValidationFilter invoked for path: " + path);
@@ -169,6 +165,15 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
169165
}
170166
}
171167

168+
private void addCorsHeaders(HttpServletResponse response, String origin) {
169+
response.setHeader("Access-Control-Allow-Origin", origin); // Never use wildcard
170+
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS");
171+
response.setHeader("Access-Control-Allow-Headers",
172+
"Authorization, Content-Type, Accept, Jwttoken, serverAuthorization, ServerAuthorization, serverauthorization, Serverauthorization");
173+
response.setHeader("Access-Control-Allow-Credentials", "true");
174+
response.setHeader("Access-Control-Max-Age", "3600");
175+
}
176+
172177
private boolean isOriginAllowed(String origin) {
173178
if (origin == null || allowedOrigins == null || allowedOrigins.trim().isEmpty()) {
174179
logger.warn("No allowed origins configured or origin is null");
@@ -185,9 +190,7 @@ private boolean isOriginAllowed(String origin) {
185190
boolean matched = origin.matches(regex);
186191
return matched;
187192
});
188-
}
189-
190-
private boolean isMobileClient(String userAgent) {
193+
} private boolean isMobileClient(String userAgent) {
191194
if (userAgent == null)
192195
return false;
193196
userAgent = userAgent.toLowerCase();

0 commit comments

Comments
 (0)