EJB 安全管理全解析
1. 引言
安全管理是 EJB 提供的重要服务之一。EJB 的底层安全基础设施由容器提供者实现,而安全策略在部署时设置,以确保 bean 在不同应用程序间的可移植性。EJB 安全的核心在于明确哪个用户有权调用 bean 的哪个方法。
在特定的操作环境中定义用户,例如名为 Gurmail Kandola 的用户,在 UNIX 机器上使用用户名 kandola,属于工程用户组,拥有访问 MySQL 数据库服务器的权限等。在 EJB 代码中,用户由 java.security.Principal
类的实例表示。主体(Principal)会被映射到安全角色,这些角色决定了主体可以访问的方法。应用程序组装者定义逻辑安全角色,部署者将这些角色映射到主体。
客户端的方法调用可能会触发一系列的 bean 间调用,那么安全如何在这个调用链中传播?不同的 EJB 角色如何划分设置安全策略的责任?接下来我们将深入探讨这些问题。
2. 实现 EJB 安全
2.1 理解基本安全概念
- 认证和授权 :认证和授权代表了系统(如计算机系统或运行在计算机上的应用程序)的两个安全级别。认证是指展示身份以进入系统,例如使用登录名和密码。授权则决定了进入系统后可以做什么。在 EJB 中,授权意味着客户端被允许调用 bean 方法。
- 主体和角色 :主体是可以被系统认证的实体,例如最终用户或尝试访问其他应用程序的应用程序。在 Java 中,经过系统认证的实体由
java.secu