安全性是任何企業(yè)級應(yīng)用的一個主要問題。它包括用戶(S)或系統(tǒng)訪問應(yīng)用和允許或拒絕該應(yīng)用程序內(nèi)的對資源的訪問的識別。在EJB中,安全性可以稱為在EJB容器管理的安全考慮,或自定義代碼可以在 EJB 來處理安全問題通過自我的聲明性安全聲明。
Authentication 身份驗證 -這是確保用戶訪問系統(tǒng)或應(yīng)用程序被證實是真實的。
Authorization 授權(quán) -這是確保真實的用戶訪問系統(tǒng)資源的權(quán)限。
User 用戶 -用戶代表客戶端或系統(tǒng)訪問應(yīng)用程序。
User Groups 用戶組-用戶可能成為組織的一部分在某些部門例如管理員的組。
User Roles 用戶角色 -定義角色的授權(quán)用戶或有權(quán)限訪問系統(tǒng)資源。
EJB 3.0 的 EJB 容器實現(xiàn)已指定以下屬性/注釋的安全。
DeclareRoles -表明類將接受這些聲明的作用。批注是在類級別應(yīng)用。
RolesAllowed -表示可以由用戶指定的角色訪問的方法。可以應(yīng)用于類級別導(dǎo)致類的所有方法都可以訪問用戶指定的角色。
PermitAll -表明業(yè)務(wù)方法是向所有人開放的??梢栽陬愐约霸诜椒墤?yīng)用。
DenyAll -表明業(yè)務(wù)方法不是任何在類或方法級別指定的用戶訪問。
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>
更多建議: