安全性(Security)
优质
小牛编辑
127浏览
2023-12-01
安全性是任何企业级应用程序的主要关注点。 它包括访问应用程序的用户或系统的标识。 基于标识,它允许或拒绝访问应用程序内的资源。 EJB容器管理标准安全问题,或者可以对其进行自定义以处理任何特定的安全问题。
重要的安全条款
Authentication - 这是确保访问系统或应用程序的用户被验证为可信的过程。
Authorization - 这是确保真实用户具有访问系统资源的权限级别的过程。
User - 用户代表访问应用程序的客户端或系统。
User Groups - 用户可能是具有特定权限的组的一部分例如管理员组。
User Roles - 角色定义权限级别,用户拥有或访问系统资源的权限。
容器管理安全
EJB 3.0已经指定了以下EJB容器实现的安全性属性/注释。
DeclareRoles - 表示该类将接受声明的角色。 注释在类级别应用。
RolesAllowed - 表示指定角色的用户可以访问方法。 可以在类级别应用,从而可以访问所有类的方法,购买指定角色的用户。
PermitAll - 表示所有人都可以访问业务方法。 它既可以在课堂上也可以在方法层面上应用。
DenyAll - 表示在类或方法级别指定的任何用户都无法访问业务方法。
例子 (Example)
package cn.xnip.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>