安全性是任何企業(yè)級(jí)應(yīng)用的一個(gè)主要問(wèn)題。它包括用戶(S)或系統(tǒng)訪問(wèn)應(yīng)用和允許或拒絕該應(yīng)用程序內(nèi)的對(duì)資源的訪問(wèn)的識(shí)別。在EJB中,安全性可以稱為在EJB容器管理的安全考慮,或自定義代碼可以在 EJB 來(lái)處理安全問(wèn)題通過(guò)自我的聲明性安全聲明。
Authentication 身份驗(yàn)證 -這是確保用戶訪問(wèn)系統(tǒng)或應(yīng)用程序被證實(shí)是真實(shí)的。
Authorization 授權(quán) -這是確保真實(shí)的用戶訪問(wèn)系統(tǒng)資源的權(quán)限。
User 用戶 -用戶代表客戶端或系統(tǒng)訪問(wèn)應(yīng)用程序。
User Groups 用戶組-用戶可能成為組織的一部分在某些部門例如管理員的組。
User Roles 用戶角色 -定義角色的授權(quán)用戶或有權(quán)限訪問(wèn)系統(tǒng)資源。
EJB 3.0 的 EJB 容器實(shí)現(xiàn)已指定以下屬性/注釋的安全。
DeclareRoles -表明類將接受這些聲明的作用。批注是在類級(jí)別應(yīng)用。
RolesAllowed -表示可以由用戶指定的角色訪問(wèn)的方法。可以應(yīng)用于類級(jí)別導(dǎo)致類的所有方法都可以訪問(wèn)用戶指定的角色。
PermitAll -表明業(yè)務(wù)方法是向所有人開放的??梢栽陬愐约霸诜椒?jí)應(yīng)用。
DenyAll -表明業(yè)務(wù)方法不是任何在類或方法級(jí)別指定的用戶訪問(wèn)。
package com.tutorialspoint.security.required; import javax.ejb.* @Stateless @DeclareRoles({"student" "librarian"}) public class LibraryBean implements LibraryRemote { @RolesAllowed({"librarian"}) public void delete(Book book){ //delete book } @PermitAll public void viewBook(Book book){ //view book } @DenyAll public void deleteAll(){ //delete all books } }
角色和用戶配置文件中的 groupd 映射。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd"> <ejb-jar> <security-role-mapping> <role-name>student</role-name> <group-name>student-group</group-name> </security-role-mapping> <security-role-mapping> <role-name>librarian</role-name> <group-name>librarian-group</group-name> </security-role-mapping> <enterprise-beans/> </ejb-jar>
更多建議: