`
jeffen2006
  • 浏览: 259205 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

对箫杉《强制结束令牌(token)引发的问题》的思考

阅读更多

 箫同学的原文见http://blog.csdn.net/mrshan/archive/2006/09/05/1181001.aspx

文中所说的情况我举一个我们这开发中的例子看看恰当不恰当:业务都有收费的环节,收费有2种方式——银行托收和前台缴现金,按照文中的描述原来的流程定义是:

<start-state name="start">
    
<transition name="" to="chargeinit"/>
</start-state>
<fork name="chargeinit">
    
<transition name="bank" to="bank"/>
    
<transition name="cash" to="cash"/>
</fork>
<task-node name="bank">
    
<transition name="bankend" to="chargeend"/>
</task-node>
<task-node name="cash">
    
<transition name="cashend" to="chargeend"/>
</task-node>
<join name="chargeend">
    
<transition to="end"/>
</join>
<end-state name="end"/>

 

而我想这种情况其实应该抽象一下,其实都是收费只不过方式不同,如果采用task-node一个节点,用不同的task来表示不同的收费方式,将signal属性设置为first,则只要有一个任务完成了流程就会继续,这应该是jbpm对这种问题的解决办法吧。

<start-state name="start">
    
<transition name="" to="charge"/>
</start-state>
<task-node name="charge" signal="first">
    
<task name="bank" swimlane="banker"/>
    
<task name="cash" swimlane="casher"/>
    
<transition name="" to="end"/>
</task-node>
<end-state name="end"/>

经过测试,无论完成哪一个任务bank或cash,流程都会进行下去到达end。

至于另一个任务的后续是否有问题,还没有仔细的分析过,等以后吧。



分享到:
评论
1 楼 mingming 2007-01-18  
刚刚接触jbpm
问下
<task-node name="charge" signal="first">
    <task name="bank" swimlane="banker"/>
    <task name="cash" swimlane="casher"/>
    <transition name="" to="end"/>
</task-node>
这块是怎么执行的
先掉用那个?bank?cash?
选择先调用那个条件是什么?是signal="first"吗?
我在程序中该怎么操作?

相关推荐

    struts令牌token实例

    当用户提交表单时,Token拦截器会检查提交的令牌是否与session中的令牌匹配,如果匹配则认为请求有效,否则抛出异常。 3. **处理异常:** 当出现重复提交或令牌不匹配的情况,Token拦截器会抛出`TokenException`。...

    C#WEB用户令牌TOKEN验证防止HTTPGETPOST等提交

    C# Web用户令牌(Token)验证是一种常见的方式,用于防止未经授权的HTTP请求,如GET和POST,确保数据的安全传输。本技术介绍将深入探讨如何使用C#实现令牌验证机制,并结合Nginx集群与SSL证书来增强WebAPI的安全性。...

    Java令牌Token登录与退出的实现

    "Java令牌Token登录与退出的实现" Java令牌Token登录与退出的实现是指一种基于令牌的登录机制,通过使用Java语言实现令牌的生成、验证和管理,以实现用户的登录和退出。这种机制的优点是无状态登录,服务器不再存储...

    ThinkPHP5.1表单令牌Token失效问题的解决

    ThinkPHP出于安全的考虑增加了表单令牌Token,由于通过Ajax异步更新数据仅仅部分页面刷新数据,就导致了令牌Token不能得到更新,紧接着的第二次新建或更新数据(提交表单时)失败——不能通过令牌的验证。...

    Spring Boot项目之用户登陆-利用用户令牌Token的方式实现

    在Spring Boot项目中,用户登录通常涉及到身份验证和授权的过程,而令牌(Token)机制是实现这一过程的有效方法。本文将深入探讨如何在Spring Boot应用中利用令牌Token来实现用户登录功能。 首先,理解Token的基本...

    Struts1.x令牌(Token)的使用.rar

    为了解决这些问题,Struts1.x引入了令牌机制。 令牌的工作流程大致如下: 1. 用户打开一个表单页面,服务器在生成页面时,会在后台生成一个唯一的令牌,并将其存储到session中,同时将令牌值隐藏在表单中。 2. ...

    app令牌的一个token实现

    App 令牌 Token 实现 本文主要讲解 App 令牌的一个 Token 实现,解决了使用 session 来判断登陆验证的不足,通过定义一个 Token 类来存储 token,包括字符串和时间戳,并实现了 Token 的管理类来维护 Token。 ...

    struts 令牌机制(Token)

    在Struts框架中,令牌机制(Token)是一种防止重复提交的有效方法,它主要用于处理表单数据的并发控制,防止用户意外或者恶意地多次提交表单,从而确保数据的一致性和安全性。 在Web应用中,用户可能会因为网络延迟...

    创建token令牌的算法示例

    3. **加密或签名**:使用哈希函数(如SHA-256)或非对称加密(如RSA)对`Token`进行加密或签名,以确保其不可篡改。如果使用JWT,这部分可以由私钥进行签名。 4. **存储和验证**:服务器端需要存储生成的`Token`,...

    基于acess_token和refresh_token实现token续签

    基于令牌(Token)的身份验证机制,特别是JSON Web Token(JWT),已经成为一种流行的选择。在这个场景下,“基于acess_token和refresh_token实现token续签”是一个关键的过程,它涉及到用户登录、权限管理以及令牌...

    测试微信公众号Token(令牌)jsp版,官网只有php

    测试微信公众号Token(令牌)jsp版,官网只有php,需要dom4j.jar支持

    asp.net webapi2 基于token令牌的身份验证

    本文将深入探讨ASP.NET WebAPI2如何实现基于Token的令牌身份验证。 首先,我们需要理解Token的身份验证原理。这种机制下,用户登录后,服务器会生成一个唯一的Token,这个Token包含了一些关于用户的信息,经过加密...

    令牌桶算法(token bucket algorithm)

    **令牌桶算法**(Token Bucket Algorithm)是一种流量控制算法,在网络通信领域被广泛应用于实现服务质量(QoS)策略中的流量监管和整形功能。其核心思想是通过一个虚拟的“令牌桶”来监控和管理数据包的发送速度,以...

    基于《STS Simulator Ver 3.6》的TOKEN令牌测试.pdf

    本文档主要讨论了使用《STS Simulator Ver 3.6》软件对电能仪表的STS(Secure Token System)系统进行TOKEN令牌测试的过程。STS系统在预付费电能表中应用广泛,其核心功能是确保充值过程的安全性,通过生成、验证...

    深入理解令牌认证机制(token)

    令牌认证机制,或者说Token,是现代Web应用中广泛采用的一种安全认证方式,特别是在前后端分离的架构中。Token主要用于在用户身份验证后提供一种安全的身份标识,使得客户端可以在不暴露用户名和密码的情况下,访问...

    token令牌支付技术1

    Token令牌支付技术是一种提高在线支付安全性的创新方法,它通过替换真实的个人账户号码(PAN)来保护消费者的敏感信息。这种技术在C#等编程语言的环境中也可以实现,尤其是在移动支付场景下,对于数据安全至关重要。...

    JwtToken令牌工具类

    JwtToken令牌工具类

    .net core 3.1 jwt刷新token

    在.NET Core 3.1中,我们可以利用JWT来实现安全的用户认证并支持刷新令牌功能,以解决短期令牌(access token)过期问题。 1. JWT基础:JWT由三部分组成,分别是头部(Header)、负载(Payload)和签名(Signature...

Global site tag (gtag.js) - Google Analytics