Ejb 简明教程
EJB - Security
安全性是任何企业级应用程序的主要关注点。它包括识别访问应用程序的用户或系统。基于识别,它允许或拒绝对应用程序内资源的访问。EJB 容器管理标准安全问题,也可以对其进行定制以处理任何特定安全问题。
Important Terms of Security
-
Authentication − 这是确保验证访问系统或应用程序的用户是真实的处理。
-
Authorization − 这是确保经过验证的用户具有访问系统资源的正确权限级别的处理。
-
User − 用户表示访问应用程序的客户端或系统。
-
User Groups − 用户可以属于具有特定权限的组,例如管理员组。
-
User Roles − 角色定义用户具有的权限级别或访问系统资源的权限。
Container Managed Security
EJB 3.0 已指定 EJB 容器实现的以下安全属性/注释。
-
DeclareRoles − 指出类将接受声明的角色。注释应用于类级别。
-
RolesAllowed − 指出方法可被指定角色的用户访问。可以应用于类级别,从而所有类方法都可以由指定角色的用户访问。
-
PermitAll − 指出所有用户都可以访问业务方法。它可以应用于类以及方法级别。
-
DenyAll − 指出任何用户都无法访问在类或方法级别指定的业务方法。
Example
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
}
}
Security Configuration
将角色和用户组映射到配置文件中。
<?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>