OSGi的基于角色的安全性

Chr*_*der 9 java security osgi blueprint-osgi

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

Ash*_*wal 8

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

它为身份验证,授权,加密和会话管理提供了简便的API.它也可以轻松部署在OSGI容器中.这里列出了Apache Shiro的一些优点Apache Shiro与Java EE本机API


Chr*_*der 5

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

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

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

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