发布于 2015-06-06 03:09:17 | 179 次阅读 | 评论: 0 | 来源: 网友投递
安全性是任何企业级应用关注的重大问题。它包括用户身份识别(S)或系统访问的应用程序,并允许或拒绝的访问应用程序内的资源。在EJB中,安全性可以声明的方式称为声明性安全EJB容器管理的安全问题,或者自定义代码可以在EJB处理安全问题的关注,通过自已声明。
认证 - 这是确保用户访问系统或应用程序被验证为是正品的方法。
授权 - 这是过程,确保用户有权访问系统资源的权限级别。
用户 - 用户表示访问该应用程序的客户端或系统。
用户组 - 用户可能具有一定部门例如管理员组的一部分。
用户角色 - 角色定义授权用户有权限访问系统资源的水平。
EJB3.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>