EJB-10:Security

一、Security(安全)的概念

  1、Violations(侵害):

  Violations,系统运行中,需要避免发生的事件(事件一旦发生,会侵害系统的安全)。

  2、Vulnerabilities(弱点):

  Vulnerabilities,系统中存在的漏洞或缺陷(如默认数据库管理员密码忘记修改)

  3、Risk(风险)

  Risk,是指发生侵害型事件的概率与发生后的危害的乘积。

  4、Controls(控制)

  Controls,发生侵害事件、弱点、风险采取何种方式去避免侵害的发生。

  ① Authentication(认证/验证)

    系统要求访问这提供身份信息(通常为用户名和密码),系统采取某种方式去检验该身份信息(常利用Database),如IDAP,验证完后,将身份信息标识为一个主体/实体。

  ② Authorization(授权)

    授权是系统根据认证后形成的主体找到主体对应的角色。角色与系统资源是一一对应的。

  授权流程:

  (认证):访问者→主体| |(授权):→角色→资源

  系统依据角色赋予访问者相应的系统资源访问权限。

  ③ Data integrity protection(数据集成性保护)

  系统对资源写操作进行相应的控制。

  ④ Data confidentiality protection(数据机密性保护)

  系统对资源读操作进行相应的控制。

二、编程式与声明式安全

 

Web Application Security

1、Web中认证的方式

  ① 基本认证/摘要认证

  a、通过配置web.xml来配置一个基本认证的方案;

  b、系统提供一个默认的表单接受用户输入的认证信息;

  c、系统对用户输入的数据(用户名/密码等)不作输入加密操作,传送到后台处理;

  d、认证信息存放在HTTP请求头当中。

  基本认证常用在企业内部环境,少有恶意破坏的应用环境,性能较高。

  ② 基于表单的认证

  a、系统需要编程人员提供表单程序(表单定制);

  b、系统将用户认证信息存放在HTTP请求体中;

  c、不加密传送到后台处理。

  ③ 基于HTTPS协议的认证

  a、系统采用HTTPS协议来传递信息(信息会加密);

  b、系统采用公钥、私钥来对信息加密,采用证书来验证。

  这种认证很常用,认证的方式也很可靠。

2、Web当中的授权

  Declarative security(声明式授权)

  ① 只需要在web.xml中配置相关元素

  ② 需要在容器特定配置文件中作主体与角色的映射。

配置步骤:

  ① 在容器中配置主体(容器中的用户)以及角色和主体对应关系;

  ② 在web.xml中配置角色,资源,角色与资源的对应关系

  ③ 在sun-web.xml中配置主体与角色的对应关系。

关于声明式授权:

  缺点:① 粗粒度,只能控制到页面级;

      ② 只适用与简单的应用情况。

 

EJB Security

EJB中的认证与授权:

  ① Web容器对客户端进行认证

  ② Web容器将认证后的主体传递给EJB容器

  ③ EJB容器按照主体来控制EJB的调用

 

Web主要作认证,EJB主要作授权。

EJB认证

  JAAS(Java Authentication Authorization Service,Java授权认证服务)

  采用了策略模式

  作用:在具体的认证与授权方案之前,提供一个抽象层(JAAS),可以使具体的认证授权方案与应用层解耦。

EJB授权

1、EJB中的编程式授权

  ① 在EJB Bean类中编写安全的逻辑

  ② 在EJB Bean类中,申明安全角色

  ③ 映射安全角色与主体的关系

@DeclareRoles(’manager’)→申明安全角色(可以是多个)

  SessionContext.isCallerInRole()→逻辑安全角色

isCallerRole()方法可以用来判断调用这(客户端)的角色是否为安全角色

① ejb-jar.xml中配置逻辑安全角色与实际安全角色的对应关系;

② 配置实际安全角色;

    ③ 配置实际安全角色与主体(Principal)的对应关系(sun-ejb-jar.xml中)

       主体是容器中配置的用户。

  2、EJB中的声明式授权

    ① 声明安全角色

    ② 使用标注来声明方法权限

    例如,@RuleAllowed(“employee”),即哪些安全角色可以访问该方法

    ③ 在配置文件中,映射安全角色与主体的对应关系

    @Declare Roles 声明角色

    @DenyAll 标注任何角色都不能访问该方法

    @PermitAll 标注任何角色都可以调用该方法

    @RuleAllowed()指定哪些角色可访问该方法

    @RunAs 将角色暂时转换为……调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值