厦门体育中心座位图:第14章. 安全

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 01:18:23
第14章 安全前一页   后一页

第14章 安全

jBPM安全特性依然在alpha阶段. 这章说明可插入的验证和授权. 部分框架可用,部分依然不能.

14.1. Todos

在framwork部分, 我们依然需要在当流程别执行时定义一部分许可用来验证jbpm引擎. 当前你能检查你自己的许可,当依然没有默认的jbpm许可组.

只有一个默认的验证实现完成了.其他验证实现只是在想象中,还没有实现 .  验证是可选的,依然没有授权实现. 即使授权,也有数个授权实现只是想象中,没有实现.

验证和授权两个部分,可以在framework里加如你自己的授权和验证机制.

14.2. 验证

验证是流程为谁的利益运行.jBPM 这个信息将从jBPM环境中可使用.造成  jBPM 总是在特殊的环境中运行比如webapp和EJB,swing应用程序或一些其他环境, 它总是让周围环境来执行验证.

在一些情况下, jBPM需要知道谁在运行代码.比如增加验证信息到流程日志记录谁做了什么. 另外一个例子是计算参与者.

jBPM 知道谁运行代码,是通过中央方法 调用org.jbpm.security.Authentication.getAuthenticatedActorId() . 方法将委托 org.jbpm.security.authenticator.Authenticator实现 . 指明一个实现的证明者, 你能配置jBPM 怎么检索当前验证的参与者.

默认证明者 org.jbpm.security.authenticator.JbpmDefaultAutenticator . 实现维护一个 ThreadLocal 验证的actorId堆栈. 验证块用方法被标记 JbpmDefaultAutenticator.pushAuthenticatedActorId(String)JbpmDefaultAutenticator.popAuthenticatedActorId() . 确定总是把这些放入 try-finally块. 实现push和pop方法,这是基本验证class方便的方法.JbpmDefaultAutenticator 维护actorIds堆栈代替一个actorId理由是:  允许jBPM代码区分在流程代码运行的用户和在jbpm引擎运行.

参看java doc文档.

14.3. 授权

授权是确认在验证允许用户安全操作之后.

jBPM 引擎和用户模式能校验如果用户被允许执行给定操作用API方法 org.jbpm.security.Authorization.checkPermission(Permission).

授权类将委托调用配置实现. pluggin接口对不同的授权策略API org.jbpm.security.authorizer.Authorizer.

如果包org.jbpm.security.authorizer 有一些实现授权的例子.大多数都是没有完全实现和测试过的.

另外一个依然需要做的是定义一组有jBPM引擎校验的jBPM许可和校验.一个例子,校验以确定用户有足够特权来结束任务通过API调用 Authorization.checkPermission(new TaskPermission("end", Long.toString(id))) ,在 TaskInstance.end() 方法


前一页 Up 后一页第13章jBPM 流程定义语言 (JPDL) Home第15章TDD适合工作流-