diff --git a/src/main/java/ru/soune/nocopy/util/JwtAuthFilter.java b/src/main/java/ru/soune/nocopy/util/JwtAuthFilter.java index c89260a..e777542 100644 --- a/src/main/java/ru/soune/nocopy/util/JwtAuthFilter.java +++ b/src/main/java/ru/soune/nocopy/util/JwtAuthFilter.java @@ -6,23 +6,27 @@ import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; import ru.soune.nocopy.dto.BaseResponse; import ru.soune.nocopy.dto.MessageCode; import java.io.IOException; +import java.util.List; @Component @RequiredArgsConstructor public class JwtAuthFilter extends OncePerRequestFilter { private final JwtUtil jwtUtil; - private final ObjectMapper objectMapper; @Override - protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, + protected void doFilterInternal(HttpServletRequest request, + HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { String authHeader = request.getHeader("Authorization"); @@ -47,9 +51,16 @@ public class JwtAuthFilter extends OncePerRequestFilter { return; } - request.setAttribute("userId", jwtUtil.extractUserId(token)); - request.setAttribute("email", jwtUtil.extractEmail(token)); + Long userId = jwtUtil.extractUserId(token); + String email = jwtUtil.extractEmail(token); + + UsernamePasswordAuthenticationToken authentication = + new UsernamePasswordAuthenticationToken(email, null, List.of(new SimpleGrantedAuthority("ROLE_USER"))); + SecurityContextHolder.getContext().setAuthentication(authentication); + + request.setAttribute("userId", userId); + request.setAttribute("email", email); filterChain.doFilter(request, response); } -} +} \ No newline at end of file