Package vaultWeb.security
Class JwtAuthFilter
java.lang.Object
org.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
vaultWeb.security.JwtAuthFilter
- All Implemented Interfaces:
jakarta.servlet.Filter,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanNameAware,org.springframework.beans.factory.DisposableBean,org.springframework.beans.factory.InitializingBean,org.springframework.context.EnvironmentAware,org.springframework.core.env.EnvironmentCapable,org.springframework.web.context.ServletContextAware
@Component
public class JwtAuthFilter
extends org.springframework.web.filter.OncePerRequestFilter
JWT authentication filter that intercepts incoming HTTP requests and validates JWT tokens.
This filter extracts the JWT token from the "Authorization" header (Bearer scheme), validates
it using JwtUtil, and sets the authenticated user in the Spring Security context.
Requests to "/api/auth/**" are excluded from authentication.
This filter extends OncePerRequestFilter, ensuring it is executed once per request.
-
Field Summary
Fields inherited from class org.springframework.web.filter.OncePerRequestFilter
ALREADY_FILTERED_SUFFIXFields inherited from class org.springframework.web.filter.GenericFilterBean
logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) Filters each HTTP request, performing JWT-based authentication.Methods inherited from class org.springframework.web.filter.OncePerRequestFilter
doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatchMethods inherited from class org.springframework.web.filter.GenericFilterBean
addRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext
-
Constructor Details
-
JwtAuthFilter
public JwtAuthFilter()
-
-
Method Details
-
doFilterInternal
protected void doFilterInternal(jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, jakarta.servlet.FilterChain filterChain) throws jakarta.servlet.ServletException, IOException Filters each HTTP request, performing JWT-based authentication.This filter runs once per request and is responsible for extracting and validating JWT access tokens from the
Authorizationheader.Processing steps:
- Skip requests targeting public authentication endpoints.
- Extract the JWT from the
Authorizationheader if it uses theBearerscheme. - Validate the token and extract the username.
- Load user details and populate the
SecurityContextHolderwith an authenticatedUsernamePasswordAuthenticationToken.
If the JWT is invalid or expired, this filter throws a
JwtAuthenticationException. The exception is handled by Spring Security’sAuthenticationEntryPoint, which results in a401 Unauthorizedresponse.- Specified by:
doFilterInternalin classorg.springframework.web.filter.OncePerRequestFilter- Parameters:
request- the incoming HTTP requestresponse- the HTTP responsefilterChain- the remaining filter chain- Throws:
jakarta.servlet.ServletException- if a servlet-related error occursIOException- if an I/O error occurs
-