🚀【Spring 學習路徑】各位敲碗的 Spring 全家桶來啦!
想成為 Java 工程師?想更了解資安?那就不能錯過這個 Spring 學習路徑啦!
Spring Boot 零基礎入門:帶你從零開始了解 Spring Boot,完全沒學過 Spring Boot 也沒問題!
Spring Security 零基礎入門:基於 Spring Boot 之上,了解這款 Spring 中最熱門的資安框架 - Spring Security!
身為一個 Java 後端工程師,你是否有以下這些困擾?
學完了 Spring Boot,卻不知道下一步該往哪裡精進?
常常聽到資安相關的名詞(ex: OAuth、JWT...),卻發現網路上的文章過於零碎,沒辦法系統性的學習它們的運作邏輯?
好想為 Spring Boot 程式添加安全的保護!怎麼做?
如果你有以上這些安全性開發的相關困擾,那就交給 Spring Security 來解決吧!
為什麼要學習 Spring Security?它的優勢在哪裡?
Spring Security 是 Spring 全家桶中的一個安全性開發框架,它除了提供了認證和授權的安全性保護機制之外,重點是它可以快速的和 Spring Boot、Spring Cloud 整合在一起,大幅提升了專案的開發效率,在當前 Spring 作為最主流的開發框架來說,Spring Security 身為 Spring 全家桶中的一員,有著不可忽視的地位。
不過,也由於 Spring Security 過於強大,導致許多認證和授權的機制,都被封裝成幾行程式即可設定完成,這卻變相導致了許多人在學習 Spring Security 時,並不了解底層的資訊安全邏輯,反而容易使得系統出現安全性漏洞,進而造成敏感資料的洩漏,產生不小的損失。
因此,如果你打從心底想要系統性的學習 Spring Security,並且想要了解資訊安全背後的運作邏輯,那麼就跟著這門課一起從零開始入門 Spring Security 吧!
不只學會寫程式,同時也了解背後的資訊安全邏輯
同上所述,由於 Spring Security 過於強大,導致許多安全性機制,都被封裝成幾行程式即可設定完成,因而導致了許多人在學習 Spring Security 時,並不了解底層的資訊安全邏輯。
因此這門課程的目標,除了讓你具備 Spring Security 的實作能力之外,同時也會讓你了解資訊安全背後的運作邏輯,透過理論和實踐並行的方式,讓你真正了解資訊安全中的技術和架構。
學完這門課後,你可以...
能夠使用 Spring Security,為 Spring Boot 程式添加帳號登入和權限管理的功能
能夠使用 Spring Security 串接 Google、Line 以及 Facebook,實作第三方登入
了解如何在微服務架構中應用 Spring Security
了解什麼是 OAuth 2.0、JWT、CSRF 以及 CORS
理論和實踐並行,3 個階段的內容 + 3 個完整的實戰演練!
這門課程著重在理論和實踐並行,因此在每一個階段的內容,都會安排一個實戰演練的章節,將該階段的內容總和起來,做一次完整的專案開發,透過完整的專案開發練習,更能發揮和體現出階段的學習成果。
所以這門課程,就會透過 3 個階段的內容,搭配 3 個完整的實戰演練,一步步的幫助你建立 Spring Security 的實作能力!
階段內容和實戰演練安排,詳見下方「課程單元規劃」:
課程將分成 3 個階段、並且搭配 3 個實戰演練,帶你循序漸進的了解 Spring Security 的用法,一步步的幫助你建立 Spring Security 的實作能力。
第一階段 - 認識 Spring Security
階段學習成果:了解 Spring Security 的基本用法,能夠使用 Spring Security 實作認證和授權的機制
實戰演練:打造一個安全的 Spring Boot 程式
在第一階段裡,我會先介紹 Spring Security 的基本用法,並且介紹「認證(Authentication)」和「授權(Authorization)」之間的差別,以及它們各自的運作機制。除此之外,我也會介紹 Spring Security 所支援的常見的安全性漏洞保護機制(CSRF、CORS),以及如何為 Spring Security 撰寫單元測試。
在這個階段的實戰演練,即是把上述的內容整合起來,為一個沒有添加任何安全性保護的 Spring Boot 程式,加入「登入認證、權限管理、單元測試、安全性漏洞保護」這四大功能。
章節 1 - 開發環境安裝
章節 2 - Spring Security 的認證
章節 3 - Spring Security 的授權
章節 4 - 在 Spring Security 中新增自定義的 Filter
章節 5 - CORS(跨來源資源共用)
章節 6 - CSRF(跨站請求偽造攻擊)
章節 7 - Spring Security 的單元測試
章節 8 - 實戰演練:打造一個安全的 Spring Boot 程式
第二階段 - Spring Security 和 OAuth 2.0
階段學習成果:了解 OAuth 2.0 協議原理,能夠使用 Spring Security 搭配 OAuth 2.0 協議,串接第三方網站
實戰演練:串接 Google、Line、Facebook,實作第三方登入
在第二階段中,我會先介紹 OAuth 2.0 協議的原理,讓你了解 OAuth 2.0 被發明出來最一開始要解決的問題是什麼、以及後續的常見應用,接著我會介紹要如何使用 Spring Security 所支援的 OAuth 的功能,去串接第三方的網站,取得使用者在 Google 或是 Line 中的資訊。
在這個階段的實戰演練,則是會在一個 Spring Boot 程式裡面,加入 Spring Security 的功能,實際去串接 Google、Line 以及 Facebook 這三個平台,實作第三方登入的功能。
章節 9 - OAuth 2.0 介紹
章節 10 - 實戰演練:串接 Google、GitHub、Facebook、LINE 實作社交登入
第三階段 - Spring Security 和微服務架構
階段學習成果:了解如何在微服務架構中應用 Spring Security
實戰演練:打造一個安全的微服務架構
在前面的階段中我們所談的,都是單體式的後端系統,而在這個第三階段,則會進階到多個服務的微服務架構。在這個階段中,我會先介紹微服務架構的設計,並且會介紹要如何使用 Spring Security,去保護微服務中的所有程式,但是又讓各個服務之間,能夠保留互相調用的權限。
在這個階段的實戰演練,則是會在數個 Spring Boot 程式的微服務中,加入一個專門負責管理登入認證的 Spring Security 微服務 ,由它來管理 Token 的發放和認證。
章節 11 - Spring Security 和微服務架構
章節 12 - 實戰演練:打造一個安全的微服務架構
這門課程適合:
學完了 Spring Boot,卻不知道下一步該往哪裡精進
在工作中常聽到一些資安的名詞,卻不了解它們實際的運作邏輯
想要為你所開發的 Spring Boot 程式,添加足夠安全的保護
想學習 Spring Security,但是不知道從何入門
看過 Spring Security 的相關教材,但不了解實際要如何運用
上完這門課,你會學到:
能夠使用 Spring Security,為 Spring Boot 程式添加帳號登入和權限管理的功能
能夠使用 Spring Security 串接 Google、Line 以及 Facebook,實作第三方登入
了解如何在微服務架構中應用 Spring Security
了解什麼是 OAuth 2.0、JWT、CSRF 以及 CORS
這門課程會使用以下環境進行教學:
Spring Boot 版本:3.1.5
Spring Security 版本:6.1.5(另外會穿插 Spring Security 5.x 的比較)
Java 17
MySQL 資料庫版本:8.0.35
IntelliJ IDEA Ultimate 2023.2
Postman
哈囉大家好,我是古君葳(也可以叫我古古),我畢業於台灣大學資工所,曾在 Garmin 擔任 Java 資深後端工程師,也有在 Hahow 開設過兩門程式課程,並且有超過 3200+ 位同學參與課程。現為自由工作者,持續探索軟體工程師的更多可能性!
Hahow 開設課程
Github 免費架站術!輕鬆打造個人品牌(1700+位同學參與,5.0 好評)
Java 工程師必備!Spring Boot 零基礎入門(1500+位同學參與,5.0 好評)
FB 和個人網站
Facebook 粉專:古古的後端筆記
個人網站:https://kucw.io
2023 iThome 鐵人賽
Spring Boot 零基礎入門:榮獲 2023 鐵人賽《優選》獎項
問題回覆
可以在 Hahow 的討論區詢問課程相關問題,通常 1 ~ 3 天內我就會回覆,不管是程式還是環境相關的問題都可以詢問!
作業設計
這門課程只有一個作業,就是在最後分享你所實作的 3 個實戰演練的程式,歡迎大家參考其他同學實作的程式,一起學習成長💪
