iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0

之前範例展示了如何在每次HTTP請求中檢查JWT Token並從中提取用戶資訊。完整的JWT驗證流程會涉及更多步驟,例如Token的有效性檢查、過期時間檢查以及設置Spring Security上下文等,這些可以在實際應用中進一步實現。

整合 JwtService 與J wtAuthenticationFilter 在我們的 JwtAuthenticationFilter 中,我們可以使用 JwtService 來解析和驗證 Token,然後設置 Spring Security 的上下文,讓後續的安全性操作能夠正確識別用戶。

if (userEmail != null && SecurityContextHolder.getContext().getAuthentication() == null) {
            UserDetails userDetails = this.userDetailsService.loadUserByUsername(userEmail);
            if(jwtServece.isTokenValid(jwt, userDetails)) {
                UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(
                        userDetails,
                        null,
                        userDetails.getAuthorities()
                );
                authToken.setDetails(
                        new WebAuthenticationDetailsSource().buildDetails(request)
                );
                SecurityContextHolder.getContext().setAuthentication(authToken);
            }
        }

這段代碼展示了如何在過濾器中整合 JwtService 來解析 JWT Token 並設置 Spring Security 上下文。這樣的設置可以確保之後的請求能夠通過Spring Security的身份驗證和授權機制來保護應用程序的資源。


上一篇
Day 14 JWT服務驗證 2
下一篇
Day 16 Jwt Security 1
系列文
Spring Boot微服務架構:API設計與實現30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言