使用 run-as 标识将应用程序连接到缺省消息传递提供程序
2009-09-29 00:00:00 来源:WEB开发网开始实现前的考虑事项
通常,您应该限制用于发送或接收消息的标识的数量。当然不应该为通过应用程序身份验证的用户提供此权限,否则他们就能够直接将消息放到队列中来绕开应用程序的业务逻辑。
为了有相应的上下文,假定我们有一个基于 Internet 的网上商店。有人购买了东西时,Web 应用程序将发送两条消息,一条处理支付,另一条告知仓库配送物品。(此示例针对本文进行了简化。)如果 Web 应用程序的用户能够向仓库队列发送消息,则该用户可以直接通过发送一条新消息,从而在不用支付的情况下就让仓库配送货物。或者,如果用户能够从支付队列接收消息,则该用户可以删除导致处理支付的消息。
因此,不应该使用这些技术来直接将最终用户标识投影到队列。相反,可以使用其投影其他反映系统标识的标识,而不要对人类最终用户的标识进行投影。因此,如果您的应用程序仅仅供其他系统调用,则对调用方的 Java EE 标识进行投影的方式可能非常正确,而使用此技术将 Web 用户的标识发送到队列则可能不太好。
关于解决方案
解决方案依赖于应用服务器的多个不同的功能:
Java Connector Architecture (JCA):缺省消息传递提供程序通过使用 JCA 资源适配器插入应用服务器运行时。JCA 定义了相关机制,供容器用于向资源适配器提供将用于连接上的凭据。
资源引用:应该始终使用资源引用查找 JMS 连接工厂。进行此工作的应用程序包含以“java:comp/env/”开头的查询字符串。资源引用具有多个属性,其中一个是关于容器或应用程序是否应提供凭据。在本例中,容器必须提供凭据。
Java Authentication and Authorization Service (JAAS):WebSphere Application Server 使用 JAAS 应用程序登录配置来准备在创建连接时将凭据传递给资源适配器。
- ››ASP.NET及JS中的cookie基本用法
- ››使用linux中的quota教程
- ››ASP.NET获取MS SQL Server安装实例
- ››使用jxl生成带动态折线图的excel
- ››asp.net实现调用百度pai 在线翻译英文转中文
- ››ASP.NET页面选项进行提示判断
- ››Asp.net定时执行程序
- ››ASP.NET中利用DataList实现图片无缝滚动
- ››使用mysql mysqldump进行数据库迁移
- ››ASP.NET验证控件RequiredFieldValidator
- ››ASP.NET中使用System.Net.Mail发邮件
- ››使用jquery是新tab形式
更多精彩
赞助商链接