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

时间:2013-09-03 17:51:43

标签: java security shiro

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

所以,只需实施自己的AuthenticatingRealmAuthorizingRealm(可能在同一个班级中),并使用SecurityManager注册。