有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Apache Shiro,来自数据库的权限控制

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

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


共 (1) 个答案

  1. # 1 楼答案

    Shiro与用户模型的外观无关。它提供了接口,即SubjectRealm,以及它的子AuthenticatingRealmAuthorizingRealm,用于以您想要的任何方式与该模型交互

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

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

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