安全性是任何企业级应用程序的主要关注点.它包括访问应用程序的用户或系统的标识.基于标识,它允许或拒绝访问应用程序内的资源. EJB容器管理标准安全问题,或者可以自定义以处理任何特定安全问题.
身份验证 : 这是确保访问系统或应用程序的用户被验证为真实的过程.
授权 : 这是确保真实用户具有访问系统资源的权限级别的过程.
用户 : 用户代表访问应用程序的客户端或系统.
用户组 : 用户可能是具有特定权限的组的一部分例如管理员组.
用户角色 : 角色定义权限级别,用户拥有或访问系统资源的权限.
EJB 3.0指定了以下EJB容器实现的安全性属性/注释.
DeclareRoles : 表示该类将接受声明的角色.注释适用于班级.
RolesAllowed : 表示指定角色的用户可以访问方法.可以在类级别应用,从而可以访问所有类的方法,购买指定角色的用户.
PermitAll : 表示所有人都可以访问业务方法.它可以在课堂上和方法层面上应用.
DenyAll : 表示在类或方法级别指定的任何用户都无法访问业务方法.
package com.it1352.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" "https://img01.yuandaxia.cn/Content/img/tutorials/ejb/ <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>