首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OSGi中使用基于权限的授权

如何在OSGi中使用基于权限的授权
EN

Stack Overflow用户
提问于 2016-04-05 08:42:22
回答 1查看 433关注 0票数 1

我正在研究创建一个安全的应用程序,它将在Karaf上运行。作为一个从未使用过JAAS (只与Shiro一起工作过)的人,我很难理解如何在JAAS中实际实现任何东西。谷歌帮不了多少忙,因为每当它看到甚至连JAAS的rimes都能看到的东西时,它都支持Spring、JavaEE和Struts :)我想我已经找到了如何使用Karaf管理领域和登录模块的方法,但对于剩下的任务,我确实有一些问题:

  1. 我如何实际为我的应用程序进行会话?应用程序的一部分将使用CXF服务进行通信,这看起来非常简单,但我也将构建一个Wicket支持的网络前端(我是通过pax-web进行猜测)。在这种情况下,如何使JAAS使用会话来避免常量登录?
  2. 在Karaf中使用JAAS的基于权限的安全性。使用Shiro,我已经习惯了基于权限(或基于操作)的授权,其中一个主题有许多角色,而这些角色具有您实际验证的权限。看来JAAS并不支持这一点。是否有什么方法来实现这一点,还是在Karaf中使用JAAS。我将在哪里指定每个角色的权限?
  3. 这似乎是一个愚蠢的问题,但请尽量不要笑得太厉害,我真的觉得我在JAAS中溺水了。执行身份验证检查的正确方法是什么?我看到AccessControllerSubject.doAsPriviledged在不同的上下文中使用,如果有区别的话,我也很难找出它们之间的区别。
EN

回答 1

Stack Overflow用户

发布于 2016-04-05 09:18:06

您可以使用JAAS登录特性。它对karaf后端进行JAAS登录,而不需要任何额外的配置。结果是当前线程上的登录。

可以使用以下方法检索主题:

代码语言:javascript
复制
Subject subject = Subject.getSubject(AccessController.getContext());

然后,您可以从主题中检索主体。通常主体上的是用户,其他的是角色。

因此,使用它,您可以编写自己的代码来检查权限,或者与shiro集成,我认为。

白羊座还有蓝图作者模块,它允许使用@RolesAllowed执行基于角色的auth操作。在后台,它使用JAAS主题的角色。

我还为一个完整的小应用程序找到了一个例子

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36421279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档