Spring Boot桌面独立应用程序中的Apache Shiro

时间:2016-07-17 07:40:55

标签: java spring hibernate javafx-8 shiro

我曾经在桌面独立应用程序中成功实现了Apache Shiro(没有Spring框架或任何框架)。

我使用INI文件来获取SecurityManager,如下所示:

Factory<org.apache.shiro.mgt.SecurityManager> factory = new IniSecurityManagerFactory(
                            "classpath:resources/shiro.ini");
org.apache.shiro.mgt.SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
Subject currentUser = SecurityUtils.getSubject();

我在stackoverflow帖子中读到,使用spring时不建议使用shiro INI。

在我的情况下,我现在在这个应用程序中使用带有Hibernate的Spring Data JPA的Spring Boot。配置Apache Shiro的最佳方法是什么,以便最大限度地利用此安全框架。

修改

我遇到的所有示例都显示了网络示例。我需要专门用于独立应用程序。非常感谢您的例子。

解决方案

经过这篇文章的大量学习和回答后,我设法提出this solution并创建了github repo。如果有人希望做得更好,请成为我的客人。

2 个答案:

答案 0 :(得分:1)

据我所知,如果您正在开发基于Web的应用程序或独立应用程序,请不要嘀咕,除非对于webfilters official Apache shiro doc,您可以在此处看到此示例显示如何为两者正确配置apache shiro,web - 基于独立。

您仍然可以使用基于xml的配置,as is described here和spring boot,并且可以使用标签或者constructor-args轻松地将配置从INI文件迁移到XML,如下所示spring xsd doc

在我看来,使用INI文件或基于XML的配置具有微妙的优点和缺点,在这两种方法中,您都可以“热插拔”bean配置。

例如,如果你很容易使用Java或在代码上配置Shiro,你可以检查这个github link,在那里你可以看到apache shiro spring-boot应用程序的一个示例类配置。

忘记Web过滤器并配置其他bean,因为在这个链接上应该可以正常工作。

据我所知,没有一种好的或一种方式可以谈论使用弹簧启动来使用xml或类配置,它只取决于你的需求。

为了完成我编写一个简单的示例Spring-boot-standalone with shiro.以便您演示基于XML的配置,这将打印领域bean以显示上下文已启动并且已注释代码以满足您的需求,其余必须是使用shiro网页教程完成bean。

Greatings。

答案 1 :(得分:0)

您可以使用yml文件将shiro配置与应用程序属性一起添加。 例如,请查看https://github.com/johntostring/spring-boot-shiro