用于加载应用类的系统和方法技术方案

技术编号:7685078 阅读:140 留言:0更新日期:2012-08-16 18:24
在应用中,类的变体可被生成并被与针对该应用的不同安全许可相关联。当类将被加载时,例如通过解码安全令牌来确定应用的安全许可。该类然后从存储有与所需安全级别相匹配的类变体的贮存库被检索。可能针对该安全许可适当地具有全部或减少的功能的、检索到的类变体然后可被加载。

【技术实现步骤摘要】
【国外来华专利技术】
本公开涉及安全应用,并且具体地涉及基于用户安全许可将类加载到应用中。
技术介绍
当调用设备上的应用时,取决于用户的安全许可,可能需要防止对该应用或该应用的某些能力的未经授权访问。现有解决方案使用应用逻辑内的或安全模块内的条件逻辑来判断受保护的能力是否可被访问。然而,如果许可被意外地或者因恶意意图而错误地设置,则在实现这些能力的代码对于该应用是可见的情况下,受保护的能力可被访问。这在分布式应用中可能是一个严重的问题。需要一种用于开发和/或提供安全应用的经改进系统和方法。
技术实现思路
在本公开的一个方面中,提供了一种用于在应用中加载类的方法,包括确定类需求;确定安全许可;检索与所述安全许可相关联的所需类的类变体;以及加载检索到的类变体。在本公开的一个方面中,提供了一种应用,包括请求处理机以及至少一个类加载器。请求处理机可被配置为处理对类的请求;以及确定该应用的安全许可。类加载器可被配置为取决于安全许可来加载类变体。在本公开的一个方面中,提供了一种包含由处理器运行的计算机可执行指令的计算机可读介质,所述计算机可执行指令在被运行时使得所述处理器对安全令牌解码;从所述安全令牌确定安全许可;选择与所述安全许可相关联的类贮存库;以及从所选类贮存库加载类。附图说明现在仅以示例的方式参考具体实施例和附图,在附图中图I图示出了应用结构;图2图示出了用于将类加载到图I的应用中的处理;图3图示出了用于执行调用的处理;图4图示出了用于获取类实例的处理;图5图示出了用于运行应用的处理和存储器;图6图示出了可在图5的处理器上执行的指令集;以及图7图示出了与类贮存库处理器通信的应用处理器。具体实施例方式图I图示出了应用结构10。应用10包括应用类12,应用类12已被加载并用来执行该应用的功能。应用类通常利用请求处理机(request handler) 15内的类加载器14来加载。在本公开的一个实施例中,应用10可被配置为将一组安全许可编码为安全令牌。当该应用执行安全操作时,请求处理机15拦截该调用。请求处理机15可位于呼叫者本地或者在远程进程中。本实施例的类加载器14被配置为基于编码在安全令牌中的许可来加载类的多个变体。安全令牌可以在应用被安装在特定计算设备上时、当用户执行登录操作时或者通过建立用户的安全凭证的任何其它手段来生成。在分布式应用中,安全令牌可以通过安全(加密)连接在利用已建立机制执行远程操作(例如,远程调用)的进程之间传递。类加载器14使用安全许可来确定要加载哪个变体。在图2的流程图100中示出了用于加载类的处理。在步骤101,对将被加载的类的 需求被生成。对于该应用的安全许可然后被评估(步骤102)。与安全许可相关联的所需类的类变体然后被检索(步骤03)并被加载(步骤104)。特定组的许可被映射到类的特定变体组。每组可包含不同群组的类。然而,将由应用直接访问的每个变体类具有相同的名称和名称空间,并且提供相同的公共API。每组变体类被包含在分离的贮存库中,例如贮存库A 17、贮存库B 18等。类贮存库可本地地位于文件系统中,或者可经由网络从中央远程服务器获得。类加载器14利用安全许可来确定要从哪个贮存库加载类。当应用需要访问经过安全许可的类时,类加载器将基于该应用的许可从适当贮存库加载该类的变体。这保护了系统的受保护的能力不被意外地或恶意地使用。由于该类的每个变体具有正确的名称空间并且提供正确的公共API,因此当该类在应用内被加载并被调用时将适当地运行。类的一个变体可被编码为提供仅可供具有管理安全许可的用户访问的完全能力,而该同一个类的另一变体可被编码为提供可供具有只读安全许可的用户访问的缩减了的功能。例如,一个类变体可支持对所有用户账户的创建和删除,另一种类变体可支持对账户信息的更新而不支持创建或删除,并且第三类变体可仅支持当前用户对账户信息的查看。在图3中,示出了用于执行由应用对类的调用的处理200。在步骤201,请求处理机15接收该调用并且在步骤202中从该调用中解码安全令牌。如果该安全令牌是有效的(步骤203),则类加载器14从适当的类贮存库中检索与该安全令牌中指示的安全许可相匹配的类变体(步骤204)。检索到的类然后可被用来执行该调用(步骤205)。在图4的流程图300中示出了用于检索类实例的处理。在步骤301,类需求被基于所需安全许可和正被执行的类操作而创建。如果如在步骤302中所判定的该类之前已被加载,并且如在步骤303中所判定的该类的实例是可用的,则调用可以被常规地执行305。如果类实例不可用但是之前已被加载,则在进行到执行调用305之前可以在步骤304中创建类实例。如果类之前未被加载(302),则将被用来加载类的类加载器在步骤306中被确定。每个类贮存库可以在应用中具有用于它的单独类加载器。这有助于合适地为应用建立防火墙,并且允许同一个类的多个变体在同一应用进程内被加载。类加载器基于(例如来自安全令牌的)类需求中所指示的安全许可而被确定。如果所选类加载器可用(307),则该类被加载308。如果如在步骤309所判定的该类成功被加载,则该类的实例被创建304以使得调用可被执行305。当应用被启动时,其加载存储在本地计算设备上的一组安全许可。该应用还被配置为获知多个类贮存库以及每个贮存库需要的许可。该应用然后初始化一组安全类加载器以从每个贮存库加载类。每个安全类加载器被配置为从贮存库之一加载类,并且获知该贮存库所需的安全许可。如先前所述的,类贮存库可在计算设备本地,或者可通过服务器远程地访问。应用可以用硬件、软件、固件或者硬件、软件和/或固件的组合来实现。在硬件的实施例中,应用可在处理器61上运行,处理器61可操作地与存储器62相关联,如图5所示。存储器62可存储可由处理器61运行的指令集400,如图6所示。该指令集允许处理器61解码可存储在存储器62中的安全令牌(步骤401)。一旦被解码,处理器61就可以确定安全令牌中所指示的安全许可(步骤402),并且然后选择与该安全许可相关联的类贮存库(步骤403)。处理器61然后从所选贮存库加载类(步骤403)。处理器61可与第二处理器71通信,第二处理器71例如是与存储多个类贮存库的存储器72相关联的类贮存库处理器。应用处理器61可通过合适的通信链路65向类贮存库处理器71发送类请求。 虽然已在附图中图示出了并在前面的描述中描述了本专利技术的实施例,然而将明白,本专利技术不限于所公开的实施例,而是能够进行许多重布置、修改和替换,而不脱离如以下权利要求所限定和阐述的本专利技术的精神。例如,本专利技术的能力可以通过块、模块、处理器或存储器中的一个或多个来全部地和/或部分地被执行。此外,这些能力可以在能够提供和/或接收信息的任何设备上或者经由该设备按当前方式执行或者按分布式方式执行。此夕卜,虽然已按特定方式进行了描绘,但是各个模块或块可以重新被安置而不脱离本专利技术的范围。另外,虽然已按特定方式进行了描绘,但是更多或更少数目的模块和连接可被用于本专利技术,以便完成本专利技术,从而向本专利技术提供附加的已知特征和/或使得本专利技术更加高效。此夕卜,在各个模块之间发送的信息可以经由数据网络、因特网、因特网协议网络、无线源和有线源中的至少一者并经由多种协议来在模块之间发送。权利要求1.一种用于在本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:托马斯·T·惠勒
申请(专利权)人:欧搜卡德远程有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1