codecamp

EJB安全

安全性是任何企业级应用的一个主要问题。它包括用户(S)或系统访问应用和允许或拒绝该应用程序内的对资源的访问的识别。在EJB中,安全性可以称为在EJB容器管理的安全考虑,自定义代码可以 EJB 处理安全问题通过自我声明性安全声明。

重要的安全术语

  • Authentication 身份验证 -这是确保用户访问系统或应用程序被证实是真实的。

  • Authorization 授权 -这是确保真实的用户访问系统资源的权限。

  • User 用户 -用户代表客户端或系统访问应用程序。

  • User Groups 用户组-用户可能成为组织的一部分在某些部门例如管理员的组。

  • User Roles 用户角色 -定义角色的授权用户或有权限访问系统资源。


容器管理的安全性

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
   } 
}


安全配置

角色用户配置文件的 groupd 映射。

<?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>

EJB事务
EJB JNDI绑定
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }