JAAS 认证过程
JAAS 認(rèn)證過程
如上圖所示,JAAS 認(rèn)證過程分如下幾個(gè)步驟:
1.?實(shí)例化一個(gè)?javax.security.auth.login.LoginContext?對象,它負(fù)責(zé)協(xié)調(diào)認(rèn)證過程。該過程可用如下代碼描述:
LoginContext lc = new LoginContext(name, new CallbackHandler());- name 指向安全配置文件jaas.config中 loginModule 的名字
- CallbackHandler 用于處理 loginModule 傳入的 callbacks
2.?LoginContext 獲取安全配置文件jaas.config,實(shí)例化 Configuration 對象。如下為一個(gè)安全配置文件示例:
UsernamePassword {javax.security.examples.auth.spi.UsernamePasswordLoginModule required debug=true; };它通過系統(tǒng)參數(shù)傳入:
-Djava.security.auth.login.config=jaas.config3.?LoginContext 通過?javax.security.auth.login.Configuration?對象獲取 LoginModule 實(shí)例列表。通常 Configuration 對象的實(shí)現(xiàn)在實(shí)例化過程中加載解析配置文件。
4.?Configuration 對象返回 LoginModule 實(shí)例列表
5.?客戶端代碼調(diào)運(yùn) LoginContext 的 login 方法
6.?LoginContext 根據(jù) Configuration 對象返回 LoginModule 實(shí)例列表,實(shí)例化 LoginModule。
7.?LoginContext 調(diào)運(yùn) LoginModule 的 initialize 方法
8.?LoginContext 調(diào)運(yùn) LoginModule 的 login 方法
9.?LoginContext 調(diào)運(yùn) LoginModule 的 commit 方法
10.?認(rèn)證的信息被保存在 Subject 中
總結(jié)
- 上一篇: Golang 学习资料
- 下一篇: 并发编程-concurrent指南-原子