Skip to content

Commit 510af45

Browse files
author
Rajeev Kumar Singh
committed
Exception Handling JwtAuthenticationFilter.java
1 parent 11b851a commit 510af45

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

polling-app-server/src/main/java/com/example/polls/security/JwtAuthenticationFilter.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.example.polls.security;
22

3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
35
import org.springframework.beans.factory.annotation.Autowired;
46
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
57
import org.springframework.security.core.context.SecurityContextHolder;
@@ -20,23 +22,29 @@
2022
public class JwtAuthenticationFilter extends OncePerRequestFilter {
2123

2224
@Autowired
23-
JwtTokenProvider tokenProvider;
25+
private JwtTokenProvider tokenProvider;
2426

2527
@Autowired
26-
CustomUserDetailsService customUserDetailsService;
28+
private CustomUserDetailsService customUserDetailsService;
29+
30+
private static final Logger logger = LoggerFactory.getLogger(JwtAuthenticationFilter.class);
2731

2832
@Override
2933
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
30-
String jwt = getJwtFromRequest(request);
34+
try {
35+
String jwt = getJwtFromRequest(request);
3136

32-
if (StringUtils.hasText(jwt) && tokenProvider.validateToken(jwt)) {
33-
Long userId = tokenProvider.getUserIdFromJWT(jwt);
37+
if (StringUtils.hasText(jwt) && tokenProvider.validateToken(jwt)) {
38+
Long userId = tokenProvider.getUserIdFromJWT(jwt);
3439

35-
UserDetails userDetails = customUserDetailsService.loadUserById(userId);
36-
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
37-
authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
40+
UserDetails userDetails = customUserDetailsService.loadUserById(userId);
41+
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
42+
authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
3843

39-
SecurityContextHolder.getContext().setAuthentication(authentication);
44+
SecurityContextHolder.getContext().setAuthentication(authentication);
45+
}
46+
} catch (Exception ex) {
47+
logger.error("Could not set user authentication in security context", ex);
4048
}
4149

4250
filterChain.doFilter(request, response);

0 commit comments

Comments
 (0)