如何仅使用Apache Shiro进行授权?

时间:2016-02-24 05:11:58

标签: spring-boot authorization shiro

在我解释这个问题之前,我应该说我们只需要Apache Shiro进行授权,并且已经启用了OAuth2的身份验证。

因此,启用Shiro的代码与此link here中的代码完全相同。 我也检查了这个issue。但对我来说,如果我启用LifecycleBeanPostProcessor几乎大多数bean将为null。我在config类静态中创建了create方法,因为它在第二个链接中建议但没有运气。

所以我的问题是,有没有办法只在没有注册shiro过滤器的情况下启用授权?如果没有,如何解决这个问题?因为看起来ShiroFilterFactoryBean需要LifecycleBeanPostProcessor并且会破坏整个应用程序。

我们正在使用最新版本的Spring Boot和Shiro 1.2.4

1 个答案:

答案 0 :(得分:0)

如评论中的https://www.youtube.com/playlist?list=PLI57HEydB_p7TogaXyArlE1ZNw4sgHmsd所述,您需要在主题中设置一个已经过身份验证的身份,这可以通过issue完成(我在这里使用的是1.5.2版) )。

Subject user = new Subject.Builder()
    .principals(new SimplePrincipalCollection("bud", "myRealm"))
    .authenticated(true)
    .buildSubject();

if (user.hasRole("admin")) {
    // do some authorized stuff
}

在实现自定义领域时,可以通过Subject.Builder()中所述的领域支持方法返回false来禁用身份验证功能。