我正在寻找一种安全框架,该框架允许OSGi服务以及CXF Web服务的基于角色的安全性。 前段时间我已经使用了弹簧安全性,但是现在我们已经切换到蓝图,据我所知,它不再是一种选择。要配置访问规则,我想主要使用标准@RolesAllowed annotation。那么我最好的出发点是什么?我也想过将自己作为蓝图扩展来实现,但我更喜欢现有的解决方案。
答案 0 :(得分:8)
我建议你改用Apache Shiro,http://shiro.apache.org/。
它为身份验证,授权,加密和会话管理提供了简便的API。它也可以轻松部署在OSGI容器中。这里列出了Apache Shiro的一些专业人员Apache Shiro vs Java EE native APIs
答案 1 :(得分: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