1
1
package com .example .quizapp .QuizApp .security ;
2
2
3
3
4
+ import com .example .quizapp .QuizApp .exceptions .BadRequest ;
5
+ import com .example .quizapp .QuizApp .model .UserDTO ;
4
6
import io .jsonwebtoken .ExpiredJwtException ;
5
7
import io .jsonwebtoken .MalformedJwtException ;
6
8
import jakarta .servlet .FilterChain ;
10
12
11
13
import lombok .extern .slf4j .Slf4j ;
12
14
15
+ import org .modelmapper .ModelMapper ;
13
16
import org .springframework .beans .factory .annotation .Autowired ;
14
17
15
18
import org .springframework .security .authentication .UsernamePasswordAuthenticationToken ;
@@ -30,9 +33,11 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
30
33
private JwtHelper jwtHelper ;
31
34
32
35
36
+
33
37
@ Autowired
34
38
private UserDetailsService userDetailsService ;
35
39
40
+ String userNameByToken ;
36
41
@ Override
37
42
protected void doFilterInternal (HttpServletRequest request , HttpServletResponse response , FilterChain filterChain ) throws ServletException , IOException {
38
43
String requestHeader = request .getHeader ("Authorization" );
@@ -42,21 +47,21 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
42
47
String username = null ;
43
48
String token = null ;
44
49
if (requestHeader != null && requestHeader .startsWith ("Bearer" )) {
45
- //looking good
50
+
46
51
token = requestHeader .substring (7 );
47
52
try {
48
-
49
53
username = this .jwtHelper .getUsernameFromToken (token );
50
-
51
54
} catch (IllegalArgumentException e ) {
52
55
logger .info ("Illegal Argument while fetching the username !!" );
53
56
e .printStackTrace ();
54
57
} catch (ExpiredJwtException e ) {
55
58
logger .info ("Given jwt token is expired !!" );
56
59
e .printStackTrace ();
60
+ throw new BadRequest ("Jwt token expired" );
57
61
} catch (MalformedJwtException e ) {
58
62
logger .info ("Some changed has done in token !! Invalid Token" );
59
63
e .printStackTrace ();
64
+ throw new BadRequest ("Jwt token is manipulated" );
60
65
} catch (Exception e ) {
61
66
e .printStackTrace ();
62
67
@@ -73,7 +78,8 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
73
78
74
79
75
80
//fetch user detail from username
76
- UserDetails userDetails = this .userDetailsService .loadUserByUsername (username );
81
+ UserDetails userDetails = this .userDetailsService .loadUserByUsername (username );
82
+ userNameByToken =userDetails .getUsername ();
77
83
Boolean validateToken = this .jwtHelper .validateToken (token , userDetails );
78
84
if (validateToken ) {
79
85
@@ -93,4 +99,8 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
93
99
filterChain .doFilter (request , response );
94
100
95
101
}
102
+
103
+ public String getUserNameByToken () {
104
+ return userNameByToken ;
105
+ }
96
106
}
0 commit comments