【发布时间】:2015-06-12 05:11:54
【问题描述】:
我们的应用程序需要检查多个后端的身份验证和授权。
为此,我们为每个后端编写了一个 LoginModule,现在最终得到一个具有多个 Principal 的主题。到目前为止,一切都很好!
应用程序需要在运行时检查自定义权限。委托人是否具有该自定义权限取决于从特定后端获取的信息。从现在开始,我们就被困在这里!
我们实现了自己的权限并使用 AccessController.checkPermission 来检查这些权限。但是如何告诉 JAAS 实际授予的权限呢?没有什么像例如Principal.setPermissions() 我们可以在 LoginModule 中调用。
Acl 和 Group 接口最初看起来很有希望,但被标记为已弃用,因此必须有不同的方法。但是哪个?
有很多关于如何编写策略文件的教程,但这并不是我们所需要的。相反,我们需要向后端询问主体的权限。再一次,我们需要同时使用多个后端,每个后端只知道“它自己的”本机权限,但不知道是否允许特定代码打开套接字或文件 - 所以基于原始文件的策略必须仍然到位。
有没有 JAAS 专家可以告诉我们需要实现什么以及如何在运行时让 JAAS 知道它?
【问题讨论】:
标签: java permissions authorization jaas