我需要在我正在开发的桌面应用程序中实现一个安全框架,以控制身份验证和用户权限控制。我听说Shiro是一个易于使用和灵活的框架。不幸的是,我只遇到了基于web的应用程序示例。
我要寻找的是如何从数据库中检索权限级别和用户,然后将它们与Shiro一起使用。以前有没有人开发过这样的东西,或者知道我可以检查的任何教程?我需要了解如何构造数据库表,以及如何使用Shiro读取权限。
发布于 2013-09-03 17:59:37
Shiro不关心您的用户模型是什么样子。它提供了接口,即Subject和Realm,以及它的子程序AuthenticatingRealm和AuthorizingRealm,以便以任何您想要的方式与该模型交互。
AuthenticatingRealm的自定义实现将实现doGetAuthenticationInfo,在该实现中,您将使用用户模型创建一个AuthenticationInfo对象,该对象保存principal或用户的身份验证信息。
对于授权,您将执行类似的操作。调用Subject#isPermitted(String)将进一步检查AuthorizationInfo对象,以获取从数据库或其他源(xml、纯文本等)检索的授权信息。
因此,只需实现您自己的AuthenticatingRealm和AuthorizingRealm (可能在同一个类中),并向SecurityManager注册它们。
https://stackoverflow.com/questions/18598514
复制相似问题