Skip to content

Instantly share code, notes, and snippets.

@thdtt
Created July 8, 2024 15:24
Show Gist options
  • Save thdtt/99f5f97779faa885a4ee581072c3c2c5 to your computer and use it in GitHub Desktop.
Save thdtt/99f5f97779faa885a4ee581072c3c2c5 to your computer and use it in GitHub Desktop.
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
throws ServletException, IOException {
final String requestTokenHeader = request.getHeader("Authorization");
String uri = request.getRequestURI();
if (uri.contains("/cart/add-cart")
|| uri.contains("/api/inventory/find-all")
|| uri.contains("/api/information/find-option-set-value-by-code")
|| uri.contains("/api/information/config")
|| uri.contains("/api/auth/login")
|| uri.contains("/api/common")
|| uri.contains("/api/complain/upload-file")
|| uri.contains("/api/contents/find-all")
|| uri.contains("/api/contents/find-by-code")
|| uri.contains("/api/contents/find-by-id")
|| uri.contains("/api/bank-account")
|| uri.contains("/get-file")
|| uri.contains("/api/auth/register")) {
chain.doFilter(request, response);
return;
}
String jwtToken = null;
if (requestTokenHeader != null && requestTokenHeader.startsWith("Bearer ")) {
jwtToken = requestTokenHeader.substring(7);
try {
if (SecurityContextHolder.getContext().getAuthentication() == null) {
UserDetailsImpl userDetails = jwtTokenUtil.decodeToken(jwtToken);
UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(
userDetails, null, userDetails.getAuthorities());
usernamePasswordAuthenticationToken
.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
SecurityContextHolder.getContext().setAuthentication(usernamePasswordAuthenticationToken);
}
} catch (ExpiredJwtException e) {
System.out.println("JWT Token has expired");
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "JWT Token invalid.");
} catch (JwtException e) {
System.out.println("Unable to get JWT Token");
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "JWT Token invalid.");
} catch (Exception e) {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "JWT Token invalid.");
}
} else {
logger.warn("JWT Token does not begin with Bearer String");
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "JWT Token invalid.");
}
chain.doFilter(request, response);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment