大多數的安全模塊是針對具體的應用的,顯著的缺點就是,每次新的程序都需要重新開發安全模塊。所以通用的安全組件服務就顯的必須了。JAAX(java authentication and authorization service,JAVA 驗證授權服務)就爲我們提供了這樣的服務。
JAAX 建立在可插入的認證模塊(Pluggable Authentication Module,PAM)的安全體系結構之上,也就是說可以無縫集成到任何的系統中。
JAAX的兩個特性:驗證(authentication) 和 授權(authorization) 。
驗證,也稱爲認證,EJB3.0 中驗證需要兩個參數,principal (本人)和 credentials(憑證) ,如在登錄過程中,principal 是賬戶 ,credentials 是密碼。
Properise props=new Propertise();
props.serProperty(Context.SECURITY_PRINCIPA,user);
props.serProperty(Context.SECURITY_CREDENTIALS,password);
登陸驗證這是最常見的驗證,當然驗證的憑證不一定是密碼,在實現上還可以是 密鑰,指紋識別,紅角膜等。這是PAM的體系結構的優點。
驗證是授權的前提,不同的角色根據已定義的 user.properties 和 roles.properties 配置文件 進行不同權限的授權。
在ejb3.O 中 權限可以定位到 同個類中的不同方法。
@javax.annotation.security.RolesAllowed({AdminRole});
public String Admin()
{
return "通過在方法上的@RolesAllowed 註釋 ,標記只有AdminRole 纔可以訪問Admin()";
}
@javax.annotation.security.PermitAll
public String AllAllowed()
{
return "任何已驗證的角色都可以訪問此方法";
}