9

我正在寻找一个允许 OSGi 服务和 CXF Web 服务基于角色的安全性的安全框架。前段时间我已经使用了spring security,但是当我们现在切换到蓝图时,据我所知,它不再是一种选择。要配置访问规则,我想主要使用标准的@RolesAllowed 注释。那么我最好的起点是什么?我还考虑过自己将其实现为蓝图扩展,但我更喜欢现有的解决方案。

4

2 回答 2

8

我建议你改用 Apache Shiro,http://shiro.apache.org/

它为身份验证、授权、加密和会话管理提供了简单的 API。它也可以很容易地部署在 OSGI 容器中。此处列出了 Apache Shiro 的一些优点Apache Shiro 与 Java EE 原生 API

于 2013-04-02T14:13:54.207 回答
5

同时,我创建了一个基于 JAAS 和 Java EE 注释(@RolesAllowed、@PermitAll、@DenyAll)的授权蓝图扩展。您可以将扩展添加到任何蓝图文件。然后它将扫描所有 bean 以查找这些注释并在找到它们时拦截调用。它使用现有的 JAAS 上下文来获取用户的角色。

因此,这样做的先决条件是进行 JAAS 登录。我还创建了一个 CXF JAASAuthentication 功能,该功能基于基本身份验证或 ws 安全用户名主体登录用户。该模块与 Apache Karaf JAAS 支持一起工作。所以所有 karaf 用户和角色都适用。

一旦包含授权模块的 aries 蓝图版本发布,我将创建一个教程来展示如何使用所有这些。同时,如果您尝试并报告您遇到的任何问题,我会很高兴。

顺便提一句。karaf 的另一种方法是 karaf 3+ 中内置的 OSGi 服务的基于角色的访问控制。它不适用于注释,但也易于使用。见 http://coderthoughts.blogspot.de/2013/10/role-based-access-control-for-karaf.html

于 2014-07-18T19:36:13.643 回答