EJB - 安全性



安全性是任何企業級應用程式的主要關注點。它包括識別訪問應用程式的使用者或系統。根據識別結果,它允許或拒絕訪問應用程式內的資源。EJB 容器管理標準安全問題,或者可以自定義以處理任何特定的安全問題。

安全的重要術語

  • 身份驗證 - 這是確保訪問系統或應用程式的使用者被驗證為真實的流程。

  • 授權 - 這是確保經過身份驗證的使用者擁有訪問系統資源的正確許可權級別的流程。

  • 使用者 - 使用者代表訪問應用程式的客戶端或系統。

  • 使用者組 - 使用者可能是擁有某些許可權的組的一部分,例如管理員組。

  • 使用者角色 - 角色定義使用者擁有的許可權級別或訪問系統資源的許可權。

容器管理安全性

EJB 3.0 指定了以下安全屬性/註解,EJB 容器會實現這些屬性/註解。

  • DeclareRoles - 指示類將接受宣告的角色。註解應用於類級別。

  • RolesAllowed - 指示方法可以被指定角色的使用者訪問。可以應用於類級別,從而導致類中的所有方法都可以被指定角色的使用者訪問。

  • PermitAll - 指示業務方法對所有人都是可訪問的。它可以應用於類級別以及方法級別。

  • DenyAll - 指示業務方法對類或方法級別指定的任何使用者都不可訪問。

示例

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
   } 
}

安全配置

在配置檔案中對映角色和使用者組。

<?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>
廣告

© . All rights reserved.