EJB安全

2018-12-09 11:07 更新

安全性是任何企業(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ò)自我聲明性安全聲明。

重要的安全術(shù)語(yǔ)

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)