Logo

All Posts

  • Published on
    本文介紹了 JWT(JSON Web Token)在 API 身分驗證中的應用,並詳細說明了如何在 Spring Boot 專案中實現 JWT 認證。文章解釋了 JWT 的概念、優勢,以及在 Spring Security 中的具體實現步驟,包括添加 JWT 依賴、建立 JWT 服務、配置安全過濾器等。通過這些步驟,我們實現了一個基於 JWT 的無狀態身分驗證系統,提高了 API 的安全性和擴展性
  • Published on
    這篇文章詳細介紹了如何在 Spring Boot 應用程式中加入 Spring Security 後,調整測試程式碼以支援認證和授權。內容涵蓋了使用 spring-security-test 模擬認證和授權、處理 CSRF 保護,以及使用 Mock 物件進行測試。此外,文章還展示了如何修改相關的測試,並提供了具體的程式碼範例,確保應用程式的安全性和測試的完整性
  • Published on
    這篇文章深入探討了如何使用程式碼來自訂 Spring Security 的安全設定,包括記憶體中使用者資料的設定、密碼編碼、HTTP 請求授權設定,以及將使用者資料儲存到 H2 資料庫中。文章詳細介紹了如何使用 BCryptPasswordEncoder 來安全地儲存密碼,並展示了如何自訂 UserDetailsService 和配置 HttpSecurity 以實現更靈活的 API 端點存取控制。此外,還提供了在使用 Spring Security 後,如何安全地存取 H2 console 的相關設定。這些進階設定使應用程式更加安全和可擴展
  • Published on
    Spring Security 是一個功能豐富的安全框架,專門用於保護基於 Spring 的應用程式。本文介紹了 Spring Security 的基礎知識,包括身份驗證、授權、防護常見 Web 攻擊等主要功能。文章詳細說明了如何在 Spring Boot 中安裝和配置 Spring Security,並展示了預設設定、測試及 API 授權的實作方法。通過簡單配置,開發者可以為應用程式添加基本的安全防護
  • Published on
    CORS(跨來源資源共享)是現代網路開發中的重要概念,允許不同來源的網頁請求資源。本文介紹了在 Spring Boot 中應用 CORS 的方法,包括使用 @CrossOrigin 註解和全局配置。@CrossOrigin 註解適用於特定控制器或方法,而全局配置則適用於整個應用程式。文章還提供了設置和測試 CORS 的實際步驟,並強調了 CORS 在安全性和靈活性方面的重要性。通過適當配置,CORS 能夠有效防止未經授權的存取,同時允許跨網域通信
  • Published on
    REST Assured 是一個強大的 Java 函式庫,用於測試 RESTful API。本文介紹了 REST Assured 的基本用法,包括設定前置條件、發送請求和驗證回應。透過 BDD 風格的測試,使程式碼更易讀。文章還討論了 REST Assured 與 Hamcrest 和 AssertJ 的整合,進一步提升測試的靈活性和表達力。最後,文章比較了 SpringBootTest 和 REST Assured 的優缺點,強調了 REST Assured 在 API 測試中的優勢及其應用場景
  • Published on
    SpringBootTest 是一個強大的測試工具,允許在測試環境中啟動完整的 Spring 應用程式,進行整合測試和 EndtoEnd 測試。本文介紹如何為應用程式實作 end-to-end 測試,包括設置測試 properties 文件、撰寫測試類別,並使用 TestRestTemplate 進行 HTTP 請求和驗證回應。通過這種測試方法,可以確保應用程式的各個組件正確協同工作,儘管相比單元測試更耗時和資源,但能捕捉到單元測試可能遺漏的問題,特別是在組件整合方面
  • Published on
    使用 Spring 框架的 DataJpaTest 進行 JPA 測試,專注於測試資料庫操作而無需設置完整應用程式。本篇文章介紹如何使用 @DataJpaTest 註解、自動配置記憶體資料庫、執行 @Entity 類別掃描及啟用 SQL 日誌記錄。透過測試 TodoRepository 的自定義查詢方法和 JPQL 方法,確保每個測試方法的初始狀態一致,並驗證查詢結果的正確性。這種方法不僅高效可靠,還能提高程式碼的可靠性,並在重構或優化時提供安全保障。
  • Published on
    使用 MockMVC 測試 Spring MVC 應用程式的控制器是有效的方法,它允許開發者模擬 HTTP 請求而無需啟動伺服器。本文介紹了如何使用 @WebMvcTest 註解來專門測試控制器,以及如何利用 @MockBean 模擬服務層行為,並通過 MockMvc 模擬 HTTP 請求。文中詳細展示了 CRUD 操作的測試案例,涵蓋了創建、查詢、更新和刪除待辦事項的各種情境,並強調了驗證回應狀態碼和內容的重要性。建議為每個控制器方法編寫全面的測試案例,以提高應用品質