[英]Apache Shiro in Spring Boot Desktop Standalone Application
我曾經在桌面獨立應用程序(沒有Spring框架或任何與此相關的框架)中成功實現Apache Shiro。
我使用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。
就我而言,在此應用程序中,我將Spring Boot與Spring Data JPA和Hibernate一起使用。 配置Apache Shiro的最佳方法是什么,這樣我就可以最大程度地利用此安全框架。
我遇到的所有示例均顯示了網絡示例。 我特別需要獨立應用程序。 實例將不勝感激。
解
經過大量的學習和從這篇文章的答案,我設法提出了這個解決方案,並創建了github回購。 如果有人希望做得更好,請成為我的客人。
據我了解,無論您是在開發基於Web的應用程序還是開發獨立應用程序,都不會喃喃自語,除非您可以在此處看到webfilters 官方Apache shiro doc的示例,否則,該示例說明如何為基於Web的應用程序和獨立應用程序正確配置apache shiro 。
您仍然可以使用基於xml的配置, 如此處在 spring boot中所描述的 ,並且可以使用諸如或constructor-args之類的標記輕松地將配置從INI文件遷移到XML,如下所示spring xsd doc
在我看來,使用INI文件或基於XML的配置有很多優點和缺點,在這兩種方法中,您都可以“熱交換” bean配置。
例如,如果您很容易使用Java或在代碼上配置Shiro,則可以查看此github 鏈接 ,在該鏈接中可以看到apache Shiro spring-boot應用程序的示例類配置。
不用理會Web過濾器並配置其他bean,因為在此鏈接上它應該可以正常工作。
據我所知,關於在Spring Boot中使用xml或類配置並沒有很好的討論方法,而這取決於您的需求。
最后,我用shiro編寫了一個簡單的Spring-boot-standalone示例。 為了演示基於XML的配置,此命令將打印領域bean,以顯示上下文已啟動,並且已注釋了代碼,可以滿足您的需求,其余的必須通過shiro網頁教程來完成。
賀禮。
您可以使用yml文件將shiro配置與應用程序屬性一起添加。 舉個例子,看看https://github.com/johntostring/spring-boot-shiro
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.