CN1705265A - 在java消息传递服务中利用证书验证 - Google Patents
在java消息传递服务中利用证书验证 Download PDFInfo
- Publication number
- CN1705265A CN1705265A CN200510068388.XA CN200510068388A CN1705265A CN 1705265 A CN1705265 A CN 1705265A CN 200510068388 A CN200510068388 A CN 200510068388A CN 1705265 A CN1705265 A CN 1705265A
- Authority
- CN
- China
- Prior art keywords
- authentication certificate
- jms
- serializing
- linkage function
- recording medium
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
在Java消息传递服务(“JMS”)中利用证书的验证包括为用户应用提供用于Java安全域的预验证证书,并为该用户应用创建JMS连接,包括在JMS连接功能中接受预验证证书,并根据该预验证证书为JMS验证该用户应用。本发明的典型实施例还包括将预验证证书缓存在用户应用中。许多实施例还包括将预验证证书缓存在中间件安全应用中。
Description
技术领域
本发明的领域是数据处理,或更具体地,是用于在JavaTM消息传递服务中利用证书验证的方法、系统和产品。
背景技术
Java消息传递服务(“JMS”)提供了用于Java应用使用点到点和发布/订阅消息传递接口进行通信的标准途径。在安全环境中部署的JMS应用在调用点到点和发布/订阅消息传递接口之前需要对用户身份进行验证。在安全环境中,即在Java安全域中操作的用户应用在该用户应用登录到该安全环境中时,获得Java验证证书。已经拥有了验证证书(在本说明书中称作“预验证证书”)的用户应用在请求到JMS队列或主题(topic)的JMS连接时仍然需要呈现用户名和口令。也就是说,现行JMS规范允许使用用于发布/订阅消息传递的createTopicConnection()方法和用于点到点消息传递的createQueueConnection()进行验证,这两个方法都不会接受用户应用的预验证证书,尽管如果它们接受的话,安全操作可能是更高效的。
发明内容
本发明提供了一种用于在Java消息传递服务(“JMS”)中利用证书验证的方法、系统和产品。本发明的实施例包括为用户应用提供用于Java安全域的预验证证书;以及为该用户应用创建JMS连接,包括在JMS连接功能中接受预验证证书,并根据该预验证证书为JMS验证该用户应用。本发明的典型实施例还包括将预验证证书缓存在用户应用中。许多实施例还包括将预验证证书缓存在中间件安全应用中。
在本发明的许多实施例中,为用户应用提供预验证证书包括保留预验证证书的实例,序列化(serialize)该预验证证书,并向用户应用提供序列化的预验证证书。在本发明的许多实施例中,在JMS连接功能中接受预验证证书包括在JMS连接功能中接受序列化的预验证证书。在本发明的许多实施例中,根据预验证证书为JMS验证用户应用包括将在JMS连接功能中所接受的序列化的预验证证书进行反序列化,并将反序列化的在JMS连接功能中所接受的预验证证书与所保留的预验证证书的实例进行比较。
在本发明的许多实施例中,为用户应用提供预验证证书包括序列化预验证证书,保留序列化的预验证证书的副本,并将序列化的预验证证书提供给该用户应用。在本发明的许多实施例中,在JMS连接功能中接受预验证证书包括在JMS连接功能中接受序列化的预验证证书。在本发明的许多实施例中,根据预验证证书为JMS验证用户应用包括将在JMS连接功能中所接受的序列化的预验证证书与所保留的序列化的预验证证书的副本进行比较。
在许多实施例中,保留序列化的预验证证书的副本的步骤包括对该序列化的预验证证书进行散列,并存储该序列化的预验证证书的散列;以及将在JMS连接功能中所接受的序列化的预验证证书与所保留的序列化的预验证证书的副本进行比较的步骤包括对在JMS连接功能中所接受的序列化的预验证证书进行散列,并将在JMS连接功能中所接受的序列化的预验证证书的散列与所存储的序列化预验证证书的散列进行比较。
在本发明的许多实施例中,为用户应用提供预验证证书的步骤包括字符串化(stringify)该预验证证书,保留该字符串化的预验证证书的副本,并将该字符串化的预验证证书提供给该用户应用。在本发明的许多实施例中,在JMS连接功能中接受预验证证书包括在JMS连接功能中接受字符串化的预验证证书。在本发明的许多实施例中,根据预验证证书为JMS验证该用户应用包括将在JMS连接功能中所接受的字符串化的预验证证书与所保留的字符串化的预验证证书的副本进行比较。在本发明的许多实施例中,保留字符串化的预验证证书的副本包括对针对用户应用的该字符串化的预验证证书进行散列,并存储该字符串化的预验证证书的散列;以及将在JMS连接功能中所接受的字符串化的预验证证书与所保留的字符串化的预验证证书的副本进行比较的步骤包括对在JMS连接功能中所接受的字符串化的预验证证书进行散列,并将在JMS连接功能中所接受的字符串化的预验证证书的散列与所存储的字符串化的预验证证书的散列进行比较。
从下面对附图中所示出的本发明示例性实施例的更加具体的说明中,本发明的上述和其他目的、特征和优点将显而易见,在这些附图中相同的参考标号一般代表本发明示例性实施例的相同部件。
附图说明
图1示出根据本发明实施例的用于在Java消息传递服务中的验证证书的示例性系统的方框图。
图2示出根据本发明实施例的包括可用于在Java消息传递服务中利用证书进行验证的计算机的示例性自动化计算机器的方框图。
图3示出图示用于在Java消息传递服务中利用证书进行验证的示例性方法的数据流程图。
图4示出图示用于在Java消息传递服务中利用证书进行验证的进一步的示例性方法的数据流程图。
图5示出图示用于在Java消息传递服务中利用证书进行验证的进一步的示例性方法的数据流程图。
图6示出图示用于在Java消息传递服务中利用证书进行验证的进一步的示例性方法的数据流程图。
图7示出图示用于在Java消息传递服务中利用证书进行验证的进一步的示例性方法的数据流程图。
图8示出图示用于在Java消息传递服务中利用证书进行验证的进一步的示例性方法的数据流程图。
具体实施方式
在本说明书中,本发明在很大程度上是就用于在Java消息传递服务中利用证书进行验证的方法描述的。但是,本领域的技术人员将认识到,任何包括用于根据所公开的方法操作的适当程序运行装置的计算机系统也完全落入本发明的范围之内。适当的程序运行装置包括用于指导计算机系统执行本发明的方法步骤的任何装置,包括例如包括连接到计算机存储器的处理单元和算术逻辑电路的系统,该系统具有在计算机存储器中进行存储的能力,该计算机存储器包括被设置为存储数据和程序指令的电子电路,这些程序指令是用于由处理单元执行的本发明的方法的程序化步骤。本发明还可实现于诸如软盘或其他可记录介质的计算机程序产品中,以便与任何适当的数据处理系统一起使用。可使用用于机器可读信息的任何记录介质来实现计算机程序产品的实施例,所述记录介质包括磁介质、光介质或其他适当介质。本领域技术人员将立即认识到,任何具有适当程序运行装置的计算机系统都将能够执行如程序产品中所实现的本发明方法的步骤。本领域的技术人员将立即认识到,虽然本说明书中所描述的许多示例性实施例面向于在计算机硬件上安装并执行的软件,但是,实现为固件或硬件的其他可选实施例同样落入本发明的范围内。
参照从图1开始的附图公开了用于在Java消息传递服务中利用证书进行验证的示例性方法、系统和产品。图1示出根据本发明实施例的用于在Java消息传递服务中的验证证书的示例性系统的方框图。图1的系统包括在用户应用304请求时提供到消息传递主题或队列的JMS连接的Java消息传递服务(“JMS”)。JMS支持两个消息传递“域”(domain),一个用于发布/订阅消息传递,而另一个用于点到点消息传递。JMS提供由用户应用在向JMS主题116发送消息时使用的主题连接102。JMS提供在用户应用向JMS队列118发送消息时使用的队列连接104。
在图1的系统中,用户应用304是能够发送或接收JMS消息的任何Java应用。用户应用304利用验证引擎302执行初始验证110,籍此获得用于Java安全域的经验证的证书106,该Java安全域也就是用户应用304在其中执行的Java安全域。验证引擎302是任何能够验证用户应用并提供用于Java安全域的经验证的证书的验证服务。这种验证引擎的例子包括Java验证和授权服务(“JAAS”)验证引擎、和Tivoli Access ManagerAuthorization ServerTM(Tivoli访问管理器授权服务器)。
本说明书中,因为证书106在用户应用304获得它们的时候已经被验证,且因为它们随后在JMS验证中再次被使用,所以认为它们是“预验证的”。在Java验证规范中未指定证书对象的形式,因此用于Java安全域的预验证证书可以是任何可保存在Java对象中的安全数据,包括例如本领域技术人员会想到的Kerberos令牌、数字签名、序列化证书、字符串化证书等。
除了向用户应用304提供预验证证书106之外,验证引擎302还可以在某种有用的形式,即序列化、字符串化、散列化的Java对象等中保留证书108,以便以后用于随后来自例如Java消息传递服务303的验证请求。或者,验证引擎302可以使得证书对中间件安全应用326可用,以便以后用于随后来自例如Java消息传递服务303的验证请求。验证引擎302可通过将证书缓存在中间件安全应用326中、通过允许中间件安全应用326缓存证书以便以后使用、或通过允许中间件安全应用326访问缓存在验证引擎中的证书来使得这些证书对中间件安全应用326可用。
中间件安全应用326是任何可根据本发明的实施例被适应性修改的消息传递或安全中间件,包括例如中间Java消息传递服务、Java远程调用(“JRI”)服务、通用对象请求代理体系结构(“CORBA”)消息传递服务、IBM MQ系列TM消息传递服务、或Tivoli的Access Manager ForWebsphere Business Integration BrokerTM(用于Websphere业务集成代理的访问管理器)。也就是说,中间件安全应用302是能够代表Java消息传递服务303,即为Java消息传递服务303的以后使用而缓存证书的任何中间件。在这一体系结构中,当多个JMS应用或多个应用层需要为相同用户应用验证时,则使用中间件安全服务器可通过为每个企业保持一个证书缓存而将此集中化。然后,所有的JMS应用可为JMS验证而经历这一中间件安全性。对于每一用户应用,第一次验证110将是一完全的“重型”验证,包括LoginContext的实例化、对LoginContext.login()的调用等或类似物。作为这一重型验证的结果而获得的证书将存储在缓存中。所有随后可能来自不同JMS应用的对于相同用户的验证请求都将由这一证书缓存来满足。
用户应用304将预验证证书106保留或“缓存”在用户应用304自身中,以便以后用于一个或多个对JMS连接的请求中。Java消息传递服务303在从用户应用304接收到伴随着预验证证书106的连接请求120时,通过将用户应用304提供的证书106与保留在验证引擎302中、或保留在中间件安全应用326中的证书108进行比较,来验证用户应用304。
根据本发明实施例的在Java消息传递服务303中利用证书的验证一般是利用计算机、即利用实现自动化计算机器的装置来实现的。自动化计算机器的例子包括如本领域技术人员能够想到的个人计算机、小型计算机、大型计算机、膝上型计算机、PDA、网络使能的移动电话、其他无线手持设备等。
为了进一步解释,图2示出根据本发明实施例的包括可用于在Java消息传递服务中利用证书的验证中的计算机134的示例性自动化计算机器的方框图。图2的计算机134包括至少一个计算机处理器156或“CPU”,以及随机存取存储器168(“RAM”)。存储在RAM 168中以便在计算机134上运行的是用户应用304、验证引擎302、Java消息传递服务303、和中间件安全应用326。虽然用户应用304、验证引擎302、Java消息传递服务303、和中间件安全应用326一起显示在计算机134上的RAM中,但是读者将理解,所有这些部件实际上可根据本发明的实施例被安装和操作于分离的计算机上。
存储在RAM 168中的还有操作系统154。可用于根据本发明实施例的计算机中的操作系统包括Unix、Linux、Microsoft NTTM、和本领域技术人员能够想到的许多其他操作系统。在图2示例中的操作系统154显示于RAM 168中,但是一个操作系统中的许多部件通常也存储在非易失性存储器166中。
图2的计算机134包括通过计算机总线160连接到处理器156和计算机134的其他部件的非易失性计算机存储器166。非易失性计算机存储器166可实现为硬盘驱动器170、光盘驱动器172、电可擦除可编程只读存储器空间(所谓的“EEPROM”或“快闪”存储器)174、RAM驱动器(未示出)、或本领域技术人员能够想到的任何其他种类的计算机存储器。
图2的示例性计算机134包括通信适配器167,用于实现用于数据通信184的、包括通过网络的连接的到其他计算机182的连接。在根据本发明实施例的系统中,许多部件可以远程存储和操作。实际上,这种系统的所有主要部件,即验证引擎、Java消息传递服务、用户应用和中间件安全应用可实际安装和操作于分离的计算机上。通信适配器实现用于数据通信的连接的硬件级,本地设备和远程设备或服务器通过这种连接相互直接以及通过网络发送数据通信。对于根据本发明实施例在Java消息传递服务中利用证书进行验证有用的通信适配器的例子包括用于有线拨号连接的调制解调器、用于有线网络连接的以太网(IEEE 802.3)适配器、和用于无线网络连接的802.11b适配器。
图2的示例性计算机包括一个或多个输入/输出接口适配器178。计算机中的输入/输出接口适配器实现通过例如软件驱动程序和计算机硬件的面向用户的输入/输出,这些软件驱动程序和计算机硬件用于控制到诸如计算机显示屏的显示设备180的输出、以及来自诸如键盘和鼠标的用户输入设备181的用户输入。
为了进一步解释,图3示出说明用于在Java消息传递服务中利用证书进行验证的示例性方法的数据流程图,其中包括为用户应用304提供306用于Java安全域的预验证证书314。如上所述,因为证书在用户应用304获得它们的时候已经被验证,且因为它们随后在JMS验证中再次被使用,所以认为它们是“预验证的”。在Java验证规范中未指定证书对象的形式,因此用于Java安全域的预验证证书可以是任何可保存在Java对象中的安全数据,包括例如本领域技术人员能够想到的Kerberos令牌、数字签名、序列化证书、字符串化证书等。
在图3的示例中,可在例如用户应用304向JAAS验证引擎初始登录时,实现为用户应用304提供306用于Java安全域的预验证证书314。也就是说,该用户应用可实例化一个JAAS LoginContext,并调用它的login()方法,该方法又转而识别并实例化一个或多个LoginModules,并调用它们的login()方法,这最终导致创建作为用于Java安全域的预验证证书的、使得对于进行调用的用户应用可用的Java安全证书。这种证书的标准形式是与Subject对象中的Principal对象相关的Java证书对象。Subject代表在Java安全域中进行验证的用户应用。每个Principal对象代表Subject的一可选的有效身份,且每个Principal可具有相关的安全证书。
用户应用在实例化一个LoginContext时,可提供带有它自己的Principal的它自己的Subject:
LoginContext(String name,Subject subject),以便可以根据本发明的实施例修改这样提供的在Subject中所引入的Principal,以包括用于提供与该Principal相关的有用形式的预验证证书的方法。这种附加方法可包括例如用于以字符串形式返回证书的称为stringfyCredentials()的方法,或用于返回序列化的证书的称为serializeCredentials()或getPAC()的方法。
图3的方法还包括将预验证证书314、318缓存322在用户应用304中,以便以后用于诸如涉及建立与JMS主题或队列的JMS连接的JMS验证的随后的验证过程中。示例性用户应用304将预验证证书314保留或“缓存”在用户应用304自身当中,以便以后用于一个或多个对JMS连接的请求中。在图3的例子中,验证引擎302还在某种有用的形式,即序列化、字符串化、散列化的Java对象等中保留证书,以便以后用于来自例如Java消息传递服务303的随后的验证请求。
图3的方法还包括将预验证证书315、320缓存324在中间件安全应用326中。在图3的例子中,验证引擎302通过在中间件安全应用326中缓存证书、或通过允许中间件安全应用326缓存证书以便以后使用,而使得预验证证书对中间件安全应用326可用,以便以后用于随后的验证请求。
图3的方法包括为用户应用创建308JMS连接,这包括在JMS连接功能中接受310预验证证书314,并根据预验证证书314为JMS 303验证312用户应用304。Java消息传递服务303在从用户应用304接收到伴随着预验证证书314的连接请求时,通过将用户应用提供的证书304与保留在验证引擎302中、或保留在中间件安全应用326中的证书320进行比较,来验证312用户应用304。
可如下述用于一点到点连接的示例性Java伪代码段中所例示的来实现在JMS连接功能中接受310预验证证书314,并根据预验证证书314为JMS 303验证312用户应用304:
//获得用于点到点JMS域的连接
QueueConnection queueConnection=
queueConnectionFactory.createQueueConnection(name,credentials);
//使用该连接建立点到点会话
QueueSession queueSession=queueConnection.createQueueSession(…);
∥创建发送者并向JMS队列发送消息
QueueSender queueSender=queueSession.createSender(aJMSQueue);
QueueSender.send(aMessage);
这一示例性JMS段创建名为queueConnection的连接,创建名为queueSession的会话,创建名为queueSender的发送者,并向JMS队列发送消息。createQueueConnection()方法的功能包括对进行调用的用户应用的验证。在标准JMS接口中,createQueueConnection()只由下述两个签名来覆盖(overridden):
createQueueConnection()
createQueueConnection(String name,String password)其中只有一个接受形式为用户名和口令对的验证数据,该用户名和口令对被对照着用户名和口令的文件、或对照着通常通过JNDI(“Java命名和目录接口”)访问的LDAP(“轻量目录访问协议”)目录所验证。
根据本发明的实施例,例如通过改变createQueueConnection()或它在特定系统中的类似物的验证机制而将其改变为接受预验证证书。例如,可在“password”参数中将预验证证书传递给createQueueConnection(Stringname,String password)。或者,可由另一签名来覆盖createQueueConnection():
createQueueConnection(String name,Credential credentials)从而产生该功能的、接受在预验证证书自己的类中的预验证证书的版本。在这一示例中,“Credential”类可以是JAAS证书对象的类本身,或者它可以是保存序列化证书或字符串化证书的类。“name”参数可以例如从JAAS Subject中的JAAS Principal中提取。
或者,可如下述用于发布/订阅连接的示例性Java伪代码段中所例示的来实现在JMS连接功能中接受310预验证证书314,并根据预验证证书314为JMS 303验证312用户应用304:
//获得用于发布/订阅JMS域的连接
TopicConnection topicConnection=
topicConnectionFactory.createTopicConnection(name,credentials);
//使用该连接建立发布/订阅会话
TopicSession topicSession=topicConnection.createTopicSession(…)
//创建发布者并向JMS主题发布消息
TopicPublisher topicPublisher=topicSession.createPublisher(aJMSTopic);
topicPublisher.publish(aMessage);
这一示例性JMS段创建名为topicConnection的连接,创建名为topicSession的会话,创建名为topicPublisher的发布方,并向JMS主题发布消息。createTopicConnection()方法的功能包括对进行调用的用户应用的验证。在标准JMS接口中,createTopicConnection()如同它的同等者createQueueConnection()一样,只由下述两个签名来覆盖:
createTopicConnection()
createTopicConnection(String name,String password)其中只有一个接受形式为用户名和口令对的验证数据,该用户名和口令对被对照着用户名和口令的文件、或对照着通常通过JNDI访问的LDAP目录所验证。
根据本发明的实施例,例如通过将createTopicConnection()或它在特定系统中的类似物的验证机制改变为接受预验证证书而对createTopicConnection()或它的类似物进行改变。可在“name”参数或在“password”参数中将预验证证书传递给createTopicConnection(Stringname,String password)。或者,可由下述另一个签名来覆盖createTopicConnection():
createTopicConnection(String name,Credential credentials)从而产生该功能的、接受在预验证证书自己的类中的预验证证书的版本。在这一示例中,“Credential”类可以是JAAS证书对象的类本身,或者它可以是保存序列化证书或字符串化证书的类。“name”参数可以例如从JAAS Subject中的JAAS Principal中提取。
如上面所讨论的,预验证证书可以由验证引擎或中间件安全应用以各种有用的形式来保留,以便以后用于随后的验证请求。为了进一步解释,图4-8示出图3中的使用由验证引擎或中间件安全应用以不同形式所保留的证书的方法的其他示例性实现。图4示出说明用于在Java消息传递服务中利用证书进行验证的示例性方法的数据流程图,其中通过序列化预验证证书并将序列化的预验证证书328提供给用户应用304,来实现为该用户应用提供306预验证证书。示例性用户应用304将序列化的预验证证书328保留或“缓存”在用户应用304自身中,以便以后用于对JMS连接的一个或多个请求中。
在图4的示例中,还可通过保留预验证证书的实例,以便以后用于随后的例如来自Java消息传递服务303的验证请求,来实现为用户应用304提供306预验证证书。图4的示例显示了保留预验证证书的实例的两种方式。所保留的预验证证书的实例315可以保留在验证引擎302中,或者所保留的预验证证书的实例320可以缓存324在中间件安全应用326中。
在图4的方法中,通过在诸如createQueueConnection(Credentialcredentials)或createTopicConnection(Credential credentials)的JMS连接功能中接受310序列化的预验证证书328,来实现在JMS连接功能中接受310预验证证书。因此,在图4的方法中,通过对在JMS连接功能中所接受的序列化预验证证书进行反序列化,并将反序列化的在JMS连接功能中所接受的预验证证书与所保留的预验证证书的实例进行比较,来实现根据预验证证书为JMS验证312用户应用。从验证引擎自身302中获得所保留的预验证证书的实例315以用于比较,或者从中间件安全应用326中获得所保留的预验证证书的实例320以用于比较。
为了进一步解释,图5示出说明用于在Java消息传递服务中利用证书进行验证的进一步示例性方法的数据流程图,其中通过序列化预验证证书、保留序列化的预验证证书的副本、并将序列化的预验证证书328提供给用户应用,来实现为该用户应用提供306预验证证书。可通过将序列化预验证证书的一个副本329保留在验证引擎中,或通过将序列化预验证证书的一个副本330“缓存”在中间件安全应用326中,来实现保留序列化预验证证书的副本。
在图5的方法中,通过在JMS连接功能中接受310序列化的预验证证书328,来实现在JMS连接功能中接受310预验证证书。在图5的方法中,根据预验证证书为JMS验证312用户应用的步骤进一步包括将在JMS连接功能中所接受的序列化的预验证证书与所保留的序列化预验证证书的副本进行比较。在这一示例中,或者从验证引擎自身329中或者从中间件安全应用330中获得所保留的序列化预验证证书的副本,以用于比较。
为了进一步解释,图6示出说明用于在Java消息传递服务中利用证书进行验证的进一步的示例性方法的数据流程图,其中通过对序列化预验证证书进行散列并存储序列化预验证证书的散列334、336,来实现保留序列化预验证证书的副本。可通过将序列化预验证证书的散列334存储在验证引擎302中,或通过将散列336“缓存”324在中间件安全应用326中,来实现存储序列化预验证证书的散列。
在图6的方法中,将在JMS连接功能中所接受的序列化的预验证证书与所保留的序列化预验证证书的副本进行比较的步骤包括对在JMS连接功能中所接受的序列化预验证证书进行散列,并将在JMS连接功能中所接受的序列化预验证证书328的散列与所存储的序列化预验证证书的散列进行比较。在这一示例中,或者从验证引擎自身334或者从中间件安全应用336中获得所存储的序列化预验证证书的散列,以用于比较。
为了更进一步解释,图7示出说明用于在Java消息传递服务中利用证书进行验证的进一步示例性方法的数据流程图,其中通过对预验证证书进行字符串化、保留字符串化的预验证证书的副本、并将字符串化的预验证证书338提供给用户应用,来实现为该用户应用提供306预验证证书。可通过将字符串化的预验证证书的一个副本340存储在验证引擎302中,或通过将字符串化的预验证证书的一个副本342“缓存”324在中间件安全应用326中,来实现保留字符串化的预验证证书的副本。
在图7的方法中,通过在JMS连接功能中接受310字符串化的预验证证书338来实现在JMS连接功能中接受310预验证证书。在图7的方法中,根据预验证证书为JMS验证312用户应用的步骤包括将在JMS连接功能中接受的字符串化的预验证证书338与所保留的字符串化的预验证证书的副本进行比较。在这一示例中,或者从验证引擎自身340或者从中间件安全应用342中获得所保留的字符串化的预验证证书的副本,以用于比较。为了更进一步解释,图8示出说明用于在Java消息传递服务中利用证书进行验证的进一步示例性方法的数据流程图,其中通过对针对用户应用的字符串化的预验证证书进行散列并存储字符串化的预验证证书的散列,来实现保留字符串化的预验证证书的副本。可通过将字符串化的预验证证书的散列346存储在验证引擎302中,或通过将散列348“缓存”324在中间件安全应用326中,来实现存储字符串化预验证证书的散列。
在图8的方法中,将在JMS连接功能中所接受的字符串化的预验证证书338与所保留的字符串化的预验证证书的副本进行比较的步骤包括对在JMS连接功能中接受的字符串化的预验证证书进行散列350,并将在JMS连接功能中接受的字符串化的预验证证书的散列与所存储的字符串化的预验证证书的散列进行比较。在这一示例中,或者从验证引擎自身346或者从中间件安全应用348中获得所存储的字符串化的预验证证书的散列,以用于比较。
根据上述的描述可以理解,可以在本发明的各实施例中作出修改和变换,而不脱离它的实质精神。本说明书中的描述只是为了说明的目的,而不应在限制的意义上理解。本发明的范围只由所附权利要求的语言来限定。
Claims (24)
1.一种用于在Java消息传递服务(“JMS”)中利用证书进行验证的方法,该方法包括:
为用户应用提供用于Java安全域的预验证证书;以及
为该用户应用创建JMS连接,包括在JMS连接功能中接受预验证证书,并根据该预验证证书为JMS验证该用户应用。
2.权利要求1的方法,进一步包括将上述预验证证书缓存在用户应用中。
3.权利要求1的方法,进一步包括将上述预验证证书缓存在中间件安全应用中。
4.权利要求1的方法,其中:
为用户应用提供预验证证书的步骤进一步包括保留预验证证书的实例,序列化该预验证证书,并向用户应用提供该序列化的预验证证书;
在JMS连接功能中接受预验证证书的步骤进一步包括在JMS连接功能中接受序列化的预验证证书;以及
根据预验证证书为JMS验证用户应用的步骤进一步包括对在JMS连接功能中所接受的序列化的预验证证书进行反序列化,并将反序列化的在JMS连接功能中所接受的预验证证书与所保留的预验证证书的实例进行比较。
5.权利要求1的方法,其中:
为用户应用提供预验证证书的步骤进一步包括序列化该预验证证书,保留该序列化的预验证证书的副本,并将该序列化的预验证证书提供给该用户应用;
在JMS连接功能中接受预验证证书的步骤进一步包括在JMS连接功能中接受序列化的预验证证书;以及
根据预验证证书为JMS验证用户应用的步骤进一步包括将在JMS连接功能中所接受的序列化的预验证证书与所保留的序列化的预验证证书的副本进行比较。
6.权利要求5的方法,其中:
保留序列化的预验证证书的副本的步骤进一步包括对该序列化的预验证证书进行散列,并存储该序列化的预验证证书的散列;以及
将在JMS连接功能中所接受的序列化的预验证证书与所保留的序列化的预验证证书的副本进行比较的步骤进一步包括对在JMS连接功能中所接受的序列化的预验证证书进行散列,并将在JMS连接功能中所接受的序列化的预验证证书的散列与所存储的序列化预验证证书的散列进行比较。
7.权利要求1的方法,其中:
为用户应用提供预验证证书的步骤进一步包括字符串化该预验证证书,保留该字符串化的预验证证书的副本,并将该字符串化的预验证证书提供给该用户应用;
在JMS连接功能中接受预验证证书的步骤进一步包括在JMS连接功能中接受字符串化的预验证证书;以及
根据预验证证书为JMS验证该用户应用的步骤进一步包括将在JMS连接功能中所接受的字符串化的预验证证书与所保留的字符串化的预验证证书的副本进行比较。
8.权利要求7的方法,其中:
保留字符串化的预验证证书的副本的步骤进一步包括对针对用户应用的该字符串化的预验证证书进行散列,并存储该字符串化的预验证证书的散列;以及
将在JMS连接功能中所接受的字符串化的预验证证书与所保留的字符串化的预验证证书的副本进行比较的步骤进一步包括对在JMS连接功能中所接受的字符串化的预验证证书进行散列,并将在JMS连接功能中所接受的字符串化的预验证证书的散列与所存储的字符串化的预验证证书的散列进行比较。
9.一种用于在Java消息传递服务(“JMS”)中利用证书进行验证的系统,该系统包括:
用于为用户应用提供用于Java安全域的预验证证书的装置;以及
用于为该用户应用创建JMS连接的装置,包括用于在JMS连接功能中接受预验证证书的装置,及用于根据该预验证证书为JMS验证该用户应用的装置。
10.权利要求9的系统,进一步包括用于将上述预验证证书缓存在用户应用中的装置。
11.权利要求9的系统,进一步包括用于将上述预验证证书缓存在中间件安全应用中的装置。
12.权利要求9的系统,其中:
用于为用户应用提供预验证证书的装置进一步包括用于保留预验证证书的实例的装置,用于序列化该预验证证书的装置,及用于向用户应用提供该序列化的预验证证书的装置;
用于在JMS连接功能中接受预验证证书的装置进一步包括用于在JMS连接功能中接受序列化的预验证证书的装置;以及
用于根据预验证证书为JMS验证用户应用的装置进一步包括用于对在JMS连接功能中所接受的序列化的预验证证书进行反序列化的装置,及用于将反序列化的在JMS连接功能中所接受的预验证证书与所保留的预验证证书的实例进行比较的装置。
13.权利要求9的系统,其中:
用于为用户应用提供预验证证书的装置进一步包括用于序列化预验证证书的装置,用于保留该序列化的预验证证书的副本的装置,及用于将该序列化的预验证证书提供给用户应用的装置;
用于在JMS连接功能中接受预验证证书的装置进一步包括用于在JMS连接功能中接受序列化的预验证证书的装置;以及
用于根据预验证证书为JMS验证用户应用的装置进一步包括用于将在JMS连接功能中所接受的序列化的预验证证书与所保留的序列化的预验证证书的副本进行比较的装置。
14.权利要求13的系统,其中:
用于保留序列化的预验证证书的副本的装置进一步包括用于对序列化的预验证证书进行散列的装置,及用于存储该序列化的预验证证书的散列的装置;以及
用于将在JMS连接功能中所接受的序列化的预验证证书与所保留的序列化的预验证证书的副本进行比较的装置进一步包括用于对在JMS连接功能中所接受的序列化的预验证证书进行散列的装置,及用于将在JMS连接功能中所接受的序列化的预验证证书的散列与所存储的序列化的预验证证书的散列进行比较的装置。
15.权利要求9的系统,其中:
用于为用户应用提供预验证证书的装置进一步包括用于字符串化该预验证证书的装置,用于保留该字符串化的预验证证书的副本的装置,及用于将该字符串化的预验证证书提供给该用户应用的装置;
用于在JMS连接功能中接受预验证证书的装置进一步包括用于在JMS连接功能中接受字符串化的预验证证书的装置;以及
用于根据预验证证书为JMS验证该用户应用的装置进一步包括用于将在JMS连接功能中所接受的字符串化的预验证证书与所保留的字符串化的预验证证书的副本进行比较的装置。
16.权利要求15的系统,其中:
用于保留字符串化的预验证证书的副本的装置进一步包括用于对针对用户应用的该字符串化的预验证证书进行散列的装置,及用于存储该字符串化的预验证证书的散列的装置;以及
用于将在JMS连接功能中所接受的字符串化的预验证证书与所保留的字符串化的预验证证书的副本进行比较的装置进一步包括用于对在JMS连接功能中所接受的字符串化的预验证证书进行散列的装置,及用于将在JMS连接功能中所接受的字符串化的预验证证书的散列与所存储的字符串化的预验证证书的散列进行比较的装置。
17.一种用于在Java消息传递服务(“JMS”)中利用证书进行验证的计算机程序产品,该计算机程序产品包括:
记录介质;
记录在该记录介质上用于为用户应用提供用于Java安全域的预验证证书的手段;以及
记录在该记录介质上用于为该用户应用创建JMS连接的手段,包括记录在该记录介质上用于在JMS连接功能中接受预验证证书的手段,及记录在该记录介质上用于根据该预验证证书为JMS验证该用户应用的手段。
18.权利要求17的计算机程序产品,进一步包括记录在该记录介质上用于将上述预验证证书缓存在用户应用中的手段。
19.权利要求17的计算机程序产品,进一步包括记录在该记录介质上用于将上述预验证证书缓存在中间件安全应用中的手段。
20.权利要求17的计算机程序产品,其中:
记录在该记录介质上用于为用户应用提供预验证证书的手段进一步包括记录在该记录介质上用于保留预验证证书的实例的手段,记录在该记录介质上用于序列化该预验证证书的手段,及记录在该记录介质上用于向用户应用提供该序列化的预验证证书的手段;
记录在该记录介质上用于在JMS连接功能中接受预验证证书的手段进一步包括记录在该记录介质上用于在JMS连接功能中接受序列化的预验证证书的手段;以及
记录在该记录介质上用于根据预验证证书为JMS验证用户应用的手段进一步包括记录在该记录介质上用于对在JMS连接功能中所接受的序列化的预验证证书进行反序列化的手段,及记录在该记录介质上用于将反序列化的在JMS连接功能中所接受的预验证证书与所保留的预验证证书的实例进行比较的手段。
21.权利要求17的计算机程序产品,其中:
记录在该记录介质上用于为用户应用提供预验证证书的手段进一步包括记录在该记录介质上用于序列化该预验证证书的手段,记录在该记录介质上用于保留该序列化的预验证证书的副本的手段,及记录在该记录介质上用于将该序列化的预验证证书提供给该用户应用的手段;
记录在该记录介质上用于在JMS连接功能中接受预验证证书的手段进一步包括记录在该记录介质上用于在JMS连接功能中接受序列化的预验证证书的手段;以及
记录在该记录介质上用于根据预验证证书为JMS验证用户应用的手段进一步包括记录在该记录介质上用于将在JMS连接功能中所接受的序列化的预验证证书与所保留的序列化的预验证证书的副本进行比较的手段。
22.权利要求21的计算机程序产品,其中:
记录在该记录介质上用于保留序列化的预验证证书的副本的手段进一步包括记录在该记录介质上用于对该序列化的预验证证书进行散列的手段,及记录在该记录介质上用于存储该序列化的预验证证书的散列的手段;以及
记录在该记录介质上用于将在JMS连接功能中所接受的序列化的预验证证书与所保留的序列化的预验证证书的副本进行比较的手段进一步包括记录在该记录介质上用于对在JMS连接功能中所接受的序列化的预验证证书进行散列的手段,及记录在该记录介质上用于将在JMS连接功能中所接受的序列化的预验证证书的散列与所存储的序列化预验证证书的散列进行比较的手段。
23.权利要求17的计算机程序产品,其中:
记录在该记录介质上用于为用户应用提供预验证证书的手段进一步包括记录在该记录介质上用于字符串化该预验证证书的手段,记录在该记录介质上用于保留该字符串化的预验证证书的副本的手段,及记录在该记录介质上用于将该字符串化的预验证证书提供给该用户应用的手段;
记录在该记录介质上用于在JMS连接功能中接受预验证证书的手段进一步包括记录在该记录介质上用于在JMS连接功能中接受字符串化的预验证证书的手段;以及
记录在该记录介质上用于根据预验证证书为JMS验证该用户应用的手段进一步包括记录在该记录介质上用于将在JMS连接功能中所接受的字符串化的预验证证书与所保留的字符串化的预验证证书的副本进行比较的手段。
24.权利要求23的计算机程序产品,其中:
记录在该记录介质上用于保留字符串化的预验证证书的副本的手段进一步包括记录在该记录介质上用于对针对用户应用的该字符串化的预验证证书进行散列的手段,及记录在该记录介质上用于存储该字符串化的预验证证书的散列的手段;以及
记录在该记录介质上用于将在JMS连接功能中所接受的字符串化的预验证证书与所保留的字符串化的预验证证书的副本进行比较的手段进一步包括记录在该记录介质上用于对在JMS连接功能中所接受的字符串化的预验证证书进行散列的手段,及记录在该记录介质上用于将在JMS连接功能中所接受的字符串化的预验证证书的散列与所存储的字符串化的预验证证书的散列进行比较的手段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/860,408 | 2004-06-03 | ||
US10/860,408 US8590019B2 (en) | 2004-06-03 | 2004-06-03 | Authentication with credentials in Java messaging service |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1705265A true CN1705265A (zh) | 2005-12-07 |
Family
ID=35450242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510068388.XA Pending CN1705265A (zh) | 2004-06-03 | 2005-05-08 | 在java消息传递服务中利用证书验证 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8590019B2 (zh) |
CN (1) | CN1705265A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100591056C (zh) * | 2006-01-06 | 2010-02-17 | 国际商业机器公司 | 用于处理消息的方法和系统 |
CN106911477A (zh) * | 2015-12-23 | 2017-06-30 | 上海格尔软件股份有限公司 | 针对慢速的数字证书验证设备缓存其验证结果的加速方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100299680A1 (en) * | 2007-01-26 | 2010-11-25 | Macgaffey Andrew | Novel JMS API for Standardized Access to Financial Market Data System |
US8516566B2 (en) * | 2007-10-25 | 2013-08-20 | Apple Inc. | Systems and methods for using external authentication service for Kerberos pre-authentication |
US8844015B2 (en) * | 2012-01-31 | 2014-09-23 | Hewlett-Packard Development Company, L.P. | Application-access authentication agent |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5235642A (en) * | 1992-07-21 | 1993-08-10 | Digital Equipment Corporation | Access control subsystem and method for distributed computer system using locally cached authentication credentials |
US5864665A (en) * | 1996-08-20 | 1999-01-26 | International Business Machines Corporation | Auditing login activity in a distributed computing environment |
US6442565B1 (en) * | 1999-08-13 | 2002-08-27 | Hiddenmind Technology, Inc. | System and method for transmitting data content in a computer network |
US7177917B2 (en) * | 2000-12-27 | 2007-02-13 | Softwired Ag | Scaleable message system |
US7322040B1 (en) * | 2001-03-27 | 2008-01-22 | Microsoft Corporation | Authentication architecture |
US6954792B2 (en) * | 2001-06-29 | 2005-10-11 | Sun Microsystems, Inc. | Pluggable authentication and access control for a messaging system |
US20030135556A1 (en) * | 2001-12-14 | 2003-07-17 | International Business Machines Corporation | Selection of communication strategies for message brokers or publish/subscribe communications |
US7131003B2 (en) * | 2003-02-20 | 2006-10-31 | America Online, Inc. | Secure instant messaging system |
US7400624B2 (en) * | 2003-05-27 | 2008-07-15 | Sun Microsystems, Inc. | Hashing based messaging approach to a cluster |
US7533264B2 (en) * | 2003-08-20 | 2009-05-12 | Microsoft Corporation | Custom security tokens |
-
2004
- 2004-06-03 US US10/860,408 patent/US8590019B2/en active Active
-
2005
- 2005-05-08 CN CN200510068388.XA patent/CN1705265A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100591056C (zh) * | 2006-01-06 | 2010-02-17 | 国际商业机器公司 | 用于处理消息的方法和系统 |
CN106911477A (zh) * | 2015-12-23 | 2017-06-30 | 上海格尔软件股份有限公司 | 针对慢速的数字证书验证设备缓存其验证结果的加速方法 |
Also Published As
Publication number | Publication date |
---|---|
US20050273495A1 (en) | 2005-12-08 |
US8590019B2 (en) | 2013-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102047262B (zh) | 用于分布式安全内容管理系统的认证 | |
US8554749B2 (en) | Data file access control | |
US7904952B2 (en) | System and method for access control | |
US8418234B2 (en) | Authentication of a principal in a federation | |
US7533265B2 (en) | Establishment of security context | |
CN102422593B (zh) | 基于http的认证 | |
AU785166B2 (en) | Methods and systems for controlling the scope of delegation of authentication credentials | |
TWI438642B (zh) | 供應數位身份表徵的系統及方法 | |
US8621587B2 (en) | Systems and methods for facilitating distributed authentication | |
JP4301482B2 (ja) | サーバ、情報処理装置及びそのアクセス制御システム並びにその方法 | |
JP5968077B2 (ja) | 情報処理装置、その制御方法、プログラム、及び画像処理装置 | |
CN1783052A (zh) | 便携式计算环境 | |
US8161154B2 (en) | Establishing a thin client terminal services session | |
US20040088260A1 (en) | Secure user authentication | |
US20030177388A1 (en) | Authenticated identity translation within a multiple computing unit environment | |
CN1627679A (zh) | 网络上的安全动态凭证分发 | |
CN1801816A (zh) | 端点识别和安全 | |
US8171103B2 (en) | Methods and apparatus for providing access to content | |
CN1507203A (zh) | 用于对网络位置的子位置进行用户验证的方法和系统 | |
CN1870643A (zh) | 利用顺序号的数据通信协调 | |
CN1578214A (zh) | 从服务器发送到客户机的启动文件的三向确认和验证 | |
CN1914881A (zh) | 通过代理证书产生在网格中进行相互授权 | |
CN1967558A (zh) | 图像处理系统,信息处理设备,计算机可读记录介质以及信息处理方法 | |
CN1875564A (zh) | 用于提供应用程序凭证的方法和装置 | |
EP1770589A1 (en) | System and method for registering entities for code signing services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20051207 |