@@ -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