- EJB教程
- EJB - 主页
- EJB - 概述
- EJB - 环境设置
- EJB - 创建应用程序
- EJB-无状态Bean
- EJB - 有状态 Bean
- EJB-持久性
- EJB - 消息驱动 Bean
- EJB - 注释
- EJB-回调
- EJB-定时器服务
- EJB - 依赖注入
- EJB-拦截器
- EJB - 可嵌入对象
- EJB - Blob/Clob
- EJB - 事务
- EJB-安全性
- EJB - JNDI 绑定
- EJB - 实体关系
- EJB - 访问数据库
- EJB - 查询语言
- EJB - 异常处理
- EJB-Web 服务
- EJB - 打包应用程序
- EJB 有用资源
- EJB - 快速指南
- EJB - 有用的资源
- EJB - 讨论
EJB-安全性
安全性是任何企业级应用程序的主要关注点。它包括访问应用程序的用户或系统的标识。根据标识,它允许或拒绝对应用程序内资源的访问。EJB 容器管理标准的安全问题,也可以对其进行定制以处理任何特定的安全问题。
重要的安全条款
身份验证- 这是确保访问系统或应用程序的用户被验证为真实的过程。
授权- 这是确保真实用户具有访问系统资源的正确权限级别的过程。
用户- 用户代表访问应用程序的客户端或系统。
用户组- 用户可能是具有某些权限的组的一部分,例如管理员组。
用户角色- 角色定义权限级别、用户拥有或访问系统资源的权限。
容器管理的安全性
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 } }
安全配置
在配置文件中映射角色和用户分组。
<?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>