久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔
站長百科 | 數(shù)字化技能提升教程 數(shù)字化時(shí)代生存寶典
首頁
數(shù)字化百科
電子書
建站程序
開發(fā)
服務(wù)器
辦公軟件
開發(fā)教程
服務(wù)器教程
軟件使用教程
運(yùn)營教程
熱門電子書
WordPress教程
寶塔面板教程
CSS教程
Shopify教程
導(dǎo)航
程序頻道
推廣頻道
網(wǎng)賺頻道
人物頻道
網(wǎng)站程序
網(wǎng)頁制作
云計(jì)算
服務(wù)器
CMS
論壇
網(wǎng)店
虛擬主機(jī)
cPanel
網(wǎng)址導(dǎo)航
WIKI使用導(dǎo)航
WIKI首頁
最新資訊
網(wǎng)站程序
站長人物
頁面分類
使用幫助
編輯測(cè)試
創(chuàng)建條目
網(wǎng)站地圖
站長百科導(dǎo)航
站長百科
主機(jī)偵探
IDCtalk云說
跨境電商導(dǎo)航
WordPress啦
站長專題
網(wǎng)站推廣
網(wǎng)站程序
網(wǎng)站賺錢
虛擬主機(jī)
cPanel
網(wǎng)址導(dǎo)航專題
云計(jì)算
微博營銷
虛擬主機(jī)管理系統(tǒng)
開放平臺(tái)
WIKI程序與應(yīng)用
美國十大主機(jī)
編輯“
JAAS
”
人物百科
|
營銷百科
|
網(wǎng)賺百科
|
站長工具
|
網(wǎng)站程序
|
域名主機(jī)
|
互聯(lián)網(wǎng)公司
|
分類索引
跳轉(zhuǎn)至:
導(dǎo)航
、?
搜索
警告:
您沒有登錄。如果您做出任意編輯,您的IP地址將會(huì)公開可見。如果您
登錄
或
創(chuàng)建
一個(gè)賬戶,您的編輯將歸屬于您的用戶名,且將享受其他好處。
反垃圾檢查。
不要
加入這個(gè)!
Java安全框架最初集中在保護(hù)用戶運(yùn)行潛在的不可信任代碼,是基于代碼的來源(URL)和誰創(chuàng)建的代碼(certificate)來給移動(dòng)代碼進(jìn)行授權(quán)。Java 2 SDK 1.3引入了JAAS( Java Authentication and Authorization Service),增加了基于用戶的訪問控制能力,即根據(jù)誰在運(yùn)行代碼來進(jìn)行授權(quán)。JAAS已經(jīng)整合進(jìn)了Java 2 SDK 1.4,作為標(biāo)準(zhǔn)的用戶認(rèn)證與授權(quán)模型。 ==JAAS用戶認(rèn)證框架== JAAS認(rèn)證被實(shí)現(xiàn)為可插入的方式,允許應(yīng)用程序同底層的具體認(rèn)證技術(shù)保持獨(dú)立,新增或者更新認(rèn)證方法并不需要更改應(yīng)用程序本身。應(yīng)用程序通過實(shí)例化LoginContext對(duì)象開始認(rèn)證過程,引用配置文件中的具體認(rèn)證方法,即LoginModule對(duì)象,來執(zhí)行認(rèn)證。 ==JAAS可插入式認(rèn)證== 一旦執(zhí)行代碼的用戶通過了認(rèn)證,JAAS授權(quán)組件將和核心Java訪問控制模型一起工作,來保護(hù)對(duì)敏感資源的訪問。從J2SDK 1.4開始,訪問控制不僅基于代碼的來源和簽名者(CodeSource),而且還要檢查誰在運(yùn)行代碼。執(zhí)行代碼的用戶被表現(xiàn)為Subject對(duì)象,如果LoginModule認(rèn)證成功,Subject對(duì)象被更新為相應(yīng)的Principals和credentials。 通過一個(gè)簡單的例子介紹JAAS開發(fā)的基本步驟。本節(jié)中的范例位于Apusic應(yīng)用服務(wù)器安裝目錄中的docs/samples/jaas/simple目錄。有關(guān)范例的內(nèi)容、編譯、部署與運(yùn)行,可參考docs/samples/jaas/simple目錄下的readme.txt文件。 范例程序的代碼分為兩部分,一部分為主程序,執(zhí)行用戶認(rèn)證過程,源程序如下: <pre> package samples; import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; import com.sun.security.auth.callback.TextCallbackHandler; public class CountFiles { static LoginContext lc = null; public static void main(String[] args) { //使用配置文件中名字為“CountFiles”的條目 try { lc = new LoginContext("CountFiles", new TextCallbackHandler()); } catch (LoginException le) { le.printStackTrace(); System.exit(-1); } try { lc.login(); //如果沒有異常拋出,則表示認(rèn)證成功 } catch (Exception e) { System.out.println("Login failed: " + e); System.exit(-1); } //以認(rèn)證用戶的身份執(zhí)行代碼 Object o = Subject.doAs(lc.getSubject(), new CountFilesAction()); System.out.println("User " + lc.getSubject( ) + " found " + o + " files."); System.exit(0); } } </pre> 可以看出,主程序包含了三個(gè)重要的步驟:首先構(gòu)造一個(gè)LoginContext對(duì)象,然后使用這個(gè)對(duì)象進(jìn)行登錄,最后,把用戶作為doAs方法一個(gè)參數(shù)。 另一部分表示用戶想要執(zhí)行的具體操作,源程序如下: <pre> package samples; import java.io.File; import java.security.PrivilegedAction; class CountFilesAction implements PrivilegedAction { public Object run() { File f = new File("."); File[] files = f.listFiles(); return new Integer(files.length); } } </pre> ==JAAS核心類和接口== *JAAS相關(guān)的核心類和接口分為三類,公共、認(rèn)證和授權(quán)。 *公共類:Subject,,Principal,Credential *認(rèn)證類和接口:LoginContext,LoginModule,CallbackHandler,Callback *授權(quán)類 :Policy,AuthPermission,PrivateCredentialPermission *詳細(xì)的描述請(qǐng)參考《JAAS Reference Guide》。 ==配置LoginModules== *JAAS認(rèn)證被實(shí)現(xiàn)為一種可插入的方式,系統(tǒng)管理員可以通過配置文件為每一個(gè)應(yīng)用程序配置LoginModuls來決定應(yīng)用程序使用的認(rèn)證技術(shù)。配置信息可以保存在文件或數(shù)據(jù)庫中,通過javax.security.auth.login.Configuration對(duì)象進(jìn)行讀取。javax.security.auth.login.Configuration為抽象類,JDK提供了可實(shí)例化的子類com.sun.security.auth.login.ConfigFile,從文件中讀取配置信息。配置文件中包含一個(gè)或多個(gè)條目,每一個(gè)條目指明了特定應(yīng)用程序使用的認(rèn)證方法。條目的結(jié)構(gòu)如下: <pre> <name used by application to refer to this entry> { <LoginModule> <flag> <LoginModule options>; <optional additional LoginModules, flags and options>; }; </pre> 可以看出,每一個(gè)條目由名字和一個(gè)或多個(gè)LoginModule組成。范例程序使用的配置文件login.conf內(nèi)容如下: <pre> CountFiles { com.apusic.security.auth.login.ClientPasswordLoginModule required; }; </pre> ==編寫Policy文件== JAAS授權(quán)擴(kuò)展了現(xiàn)有的Java安全體系結(jié)構(gòu),在給代碼授權(quán)時(shí)可以包括一個(gè)多個(gè)Principal域,指出Principal代表的用戶執(zhí)行特定的代碼時(shí),具有分配的權(quán)限。因此,授權(quán)聲明的基本形式為: <pre> grant <signer(s) field>, <codeBase URL> <Principal field(s)> { permission perm_class_name "target_name", "action"; .... permission perm_class_name "target_name", "action"; }; </pre> 缺省的策略文件實(shí)現(xiàn)和策略文件語法請(qǐng)參考《Default Policy Implementation and Policy File Syntax》。范例程序使用的策略文件policy.jaas內(nèi)容如下: <pre> grant codeBase "file:./build" { permission java.security.AllPermission; }; grant codeBase "file:/${apusic.home}/lib/apusic.jar" { permission java.security.AllPermission; }; grant codeBase "file:./build/actions" Principal com.apusic.security.PrincipalImpl "admin" { permission java.io.FilePermission "<<ALL FILES>>", "read"; }; </pre> 可以看出,給主程序和apusic.jar授予了所有權(quán)限;當(dāng)執(zhí)行具體操作的用戶為“admin”時(shí),授予了讀取所有文件的權(quán)限。 ==運(yùn)行范例程序== *范例程序提供了ant的build.xml腳本,請(qǐng)用戶自己下載并安裝ant。運(yùn)行范例程序的步驟為: 首先啟動(dòng)Apusic應(yīng)用服務(wù)器, 范例程序?qū)⒌卿浄?wù)器。 *編譯、運(yùn)行程序。在simple目錄下執(zhí)行ant命令,會(huì)編譯源程序CountFiles.java到build目錄下,編譯源程序CountFilesAction.java到build/actions目錄下。然后會(huì)自動(dòng)運(yùn)行程序,相當(dāng)于在命令行敲入下面的java命令: <pre> java -classpath %APUSIC_HOME%/lib/apusic.jar;./build;./build/actions -Djava.security.manager -Djava.security.policy==policy.jaas -Djava.security.auth.login.config==login.conf -Dapusic.home=%APUSIC_HOME% samples.CountFiles </pre> 根據(jù)提示輸入服務(wù)器,用戶名和口令。 如果用“admin”登錄,程序?qū)⒄_\(yùn)行結(jié)束,若使用其他用戶名登錄,將拋出訪問控制異常。 ==相關(guān)條目== ==參考來源== *http://baike.baidu.com/view/72676.htm [[category:]]
摘要:
請(qǐng)注意,您對(duì)站長百科的所有貢獻(xiàn)都可能被其他貢獻(xiàn)者編輯,修改或刪除。如果您不希望您的文字被任意修改和再散布,請(qǐng)不要提交。
您同時(shí)也要向我們保證您所提交的內(nèi)容是您自己所作,或得自一個(gè)不受版權(quán)保護(hù)或相似自由的來源(參閱
Wordpress-mediawiki:版權(quán)
的細(xì)節(jié))。
未經(jīng)許可,請(qǐng)勿提交受版權(quán)保護(hù)的作品!
取消
編輯幫助
(在新窗口中打開)
取自“
http://kktzf.com.cn/wiki/JAAS
”