EJB安全
安全性是任何企业级应用的一个主要问题。它包括用户(S)或系统访问应用和允许或拒绝该应用程序内的对资源的访问的识别。在EJB中,安全性可以称为在EJB容器管理的安全考虑,或自定义代码可以在 EJB 来处理安全问题通过自我的声明性安全声明。
重要的安全术语
Authentication 身份验证 -这是确保用户访问系统或应用程序被证实是真实的。
Authorization 授权 -这是确保真实的用户访问系统资源的权限。
User 用户 -用户代表客户端或系统访问应用程序。
User Groups 用户组-用户可能成为组织的一部分在某些部门例如管理员的组。
User Roles 用户角色 -定义角色的授权用户或有权限访问系统资源。
容器管理的安全性
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 } }
安全配置
角色和用户配置文件中的 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>