深入淺出JAAS
JAAS:JAVA的認(rèn)證和權(quán)限系統(tǒng),是JDK級(jí)的,并且屬于J2EE的規(guī)范之一,容器必須要實(shí)現(xiàn)的。作用就要規(guī)范外部(對(duì)于J2EE程序,外部指瀏覽器客戶端,對(duì)于J2SE程序,外部指調(diào)用程序)如果要作用JDK里面的東西時(shí)的情況。
認(rèn)證:
- 把驗(yàn)證代碼寫在LOGINMODULE的實(shí)現(xiàn)類的login()方法中
- 通過配置文件和加JAVA_OTPS的方式告訴JDK類全名
- 告訴JDK需要使用認(rèn)證的地方
如果是J2SE的程序,在需要認(rèn)證的地方加上LOGINCONTEXT的login(),JDK會(huì)回調(diào)上面的login()方法,不通過則拋出excetion,通過則將客戶端相關(guān)信息保存到SUBJECT中;
如果是J2EE程序,則在WEB.XML中配置相應(yīng)元素,容器會(huì)回調(diào)上面的login()方法,如果不通過則導(dǎo)到登錄頁面,通過則將客戶端相關(guān)信息保存到SUBJECT中
- 寫好權(quán)限策略內(nèi)容:以PRINCALS為單位,列出這個(gè)PRINCALS能做的事:PERMISSION子類列表,PERMISSION子類實(shí)現(xiàn)了要保護(hù)的對(duì)象,關(guān)鍵識(shí)別參數(shù),操作保護(hù)方法,保存為策略文件
- 把涉及到保護(hù)對(duì)象操作的代碼放到PrivilegedAction實(shí)現(xiàn)類的run()方法內(nèi)
- 通過配置文件和加JAVA_OTPS的方式告訴JDK資源文件全名,策略文件全名和需要啟用SECURITY MANAGER
- 在需要驗(yàn)證權(quán)限的地方,調(diào)用Subject.doAsPrivileged(Subject, PrivilegedAction, null),JDK或容器根據(jù)策略文件該SUBJECT是有操作要保護(hù)對(duì)象的權(quán)限,沒有則則拋出excetion,有則執(zhí)行
posted on 2011-10-06 11:38 paulwong 閱讀(344) 評(píng)論(0) 編輯 收藏 所屬分類: JAAS