【问题标题】:Apache Shiro, permission control from database [closed]Apache Shiro,来自数据库的权限控制[关闭]
【发布时间】:2013-09-04 02:14:13
【问题描述】:

我需要在我正在开发的桌面应用程序中实现一个安全框架,以控制身份验证和用户权限控制。我听说 Shiro 是一个易于使用且灵活的框架。不幸的是,我只遇到过基于 Web 的应用程序示例。

我正在寻找的是如何从数据库中检索权限级别和用户,然后将它们与 Shiro 一起使用。以前有没有人开发过这样的东西,或者知道我可以检查的任何教程?我需要了解如何构建我的数据库表,以及如何使用 Shiro 读取权限。

【问题讨论】:

  • 您是否对该主题进行过任何研究?如果你表明你自己已经做出了一些努力,你就更有可能得到答案。
  • 老实说,我只需要提示从哪里开始,您所能做的就是否决问题(然后关闭它),而不是提示我如何解决我正在尝试的情况解释一下,至少@Sotirios Delimanolis 的回答在某种程度上很有用,因为我有一些事情要开始......

标签: java security shiro


【解决方案1】:

Shiro 不关心你的用户模型是什么样的。它提供了接口,即SubjectRealm,以及它的子接口AuthenticatingRealmAuthorizingRealm,用于以任何你想要的方式与该模型进行交互。

AuthenticatingRealm 的自定义实现将实现doGetAuthenticationInfo,您可以在其中使用您的用户模型创建一个AuthenticationInfo 对象,该对象包含principal 或用户的身份验证信息。

您将执行类似的授权操作。调用Subject#isPermitted(String) 将在堆栈的更下方检查AuthorizationInfo 对象以获取您从数据库或其他来源(xml、纯文本等)检索到的授权信息。

所以只需实现您自己的AuthenticatingRealmAuthorizingRealm(可能在同一个类中)并将它们注册到SecurityManager

【讨论】:

    猜你喜欢
    • 2013-06-15
    • 2016-09-28
    • 2011-07-12
    • 2013-04-26
    • 2013-09-14
    • 2017-06-14
    • 2013-02-26
    • 2013-03-19
    • 2015-01-24
    相关资源
    最近更新 更多