位置:首页 > Java技术 > EJB > EJB安全

EJB安全

安全性是任何企业级应用关注的重大问题。它包括用户身份识别(S)或系统访问的应用程序,并允许或拒绝的访问应用程序内的资源。在EJB中,安全性可以声明的方式称为声明性安全EJB容器管理的安全问题,或者自定义代码可以在EJB处理安全问题的关注,通过自已声明。

安全的重要术语

  • 认证 - 这是确保用户访问系统或应用程序被验证为是正品的方法。

  • 授权 - 这是过程,确保用户有权访问系统资源的权限级别。

  • 用户 - 用户表示访问该应用程序的客户端或系统。

  • 用户组 - 用户可能具有一定部门例如管理员组的一部分。

  • 用户角色 - 角色定义授权用户有权限访问系统资源的水平。

容器管理安全

EJB3.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>