Ch10 Web 容器安全管理

Justin Lin
Justin LinTechnology / Community Evangelist at Free lancer
1
10
• Web 容器安全管理
學習目標
• 了解 Java EE 安全概念與名詞
• 使用容器基本驗證與表單驗
• 使用 HTTPS 保密資料傳輸
2
Java EE 安全基本觀念
• 驗證(Authentication)
• 資源存取控制(Access control for resources)
• 資料完整性(Data Integrity)
• 資料機密性或隱私性(Confidentiality or Data
Privacy)
3
Java EE 安全基本觀念
• 使用者(User)
• 群組(Group)
• 角色(Role)
• Realm
4
Java EE 安全基本觀念
• 宣告式安全(Declarative Security)
• 程設式安全(Programmatic Security)
5
宣告式基本驗證
6
宣告式基本驗證
• 讓 Web 容器提供基本驗證的功能,可以在
web.xml 定義
• 定義角色
7
宣告式基本驗證
• 定義哪些 URL 可以被哪些角色以哪種 HTTP
方法存取
• 看不到任何 HTTP 方法規範的定義,預設就
是所有 HTTP 方法都受到限制
8
宣告式基本驗證
• 只有 admin 或 manager 才可以使用 GET 與
POST 方法進行存取
9
宣告式基本驗證
• 沒有設定 <http-method>,則所有 HTTP 方法都
會受到限制
• 設定了 <http-method>,則只有被設定的 HTTP
方法受到限制,其它方法則不受限制
• 沒有設定 <auth-constraint> 標籤,或是
<auth-constraint> 標籤中設定 <role-
name>*</role-name>,表示任何角色都可以存
取
• 直接撰寫 <auth-constraint/>,那就沒有任何
角色可以存取
10
宣告式基本驗證
11
容器基本驗證原理
12
容器基本驗證原理
13
容器基本驗證原理
14
宣告式表單驗證
15
宣告式表單驗證
16
容器表單驗證原理
17
使用 HTTPS 保護資料
18
19
程設式安全管理
• 在 Servlet 3.0,HttpServletRequest 新
增了三個與安全有關的方法:
authenticate()、login()、logout()
20
程設式安全管理
21
22
程設式安全管理
• 在 Servlet 3.0 前,HttpServletRequest
上就已存在三個與安全相關的方法:
getUserPrincipal()、
getRemoteUser()及 isUserInRole()
23
24
標註存取控制
25
標註存取控制
26
標註存取控制
27
標註存取控制
• 在 web.xml 設定
28
標註存取控制
• 如果要設定 <transport-guarantee> 的
對應資訊
29
綜合練習/微網誌
• 登入檢查、驗證等動作交給Web容器來負責
30
1 of 30

Recommended

Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應Justin Lin
653 views74 slides
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應Justin Lin
236 views73 slides

More Related Content

More from Justin Lin

Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走Justin Lin
272 views31 slides
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMailJustin Lin
157 views8 slides
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤Justin Lin
133 views54 slides
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTLJustin Lin
161 views74 slides
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSPJustin Lin
250 views83 slides

More from Justin Lin(20)

Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin872 views
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin272 views
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin157 views
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin133 views
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
Justin Lin161 views
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin250 views
14. 進階主題14. 進階主題
14. 進階主題
Justin Lin403 views
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin236 views
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin152 views
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
Justin Lin146 views
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin156 views
9. 資料結構9. 資料結構
9. 資料結構
Justin Lin292 views
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin245 views
7. 例外處理7. 例外處理
7. 例外處理
Justin Lin115 views
6. 類別的繼承6. 類別的繼承
6. 類別的繼承
Justin Lin166 views
5. 從模組到類別5. 從模組到類別
5. 從模組到類別
Justin Lin169 views
4. 流程語法與函式4. 流程語法與函式
4. 流程語法與函式
Justin Lin188 views
3.型態與運算子3.型態與運算子
3.型態與運算子
Justin Lin199 views
1. Python起步走1. Python起步走
1. Python起步走
Justin Lin661 views
2. 從 REPL 到 IDE2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Justin Lin234 views

Ch10 Web 容器安全管理