Spring Bootは、組み込みの認証フレームワークを提供し、カスタマイズされたJavaconFig構成拡張機能も提供します。スプリングセルカリチャも優れたフレームワークですが、Apache Shiro Frameworkの使用に慣れています。さらに、元のプロジェクトは統合されたShiroフレームワークでした。私はオンラインで構成方法を見つけるために行きましたが、完全な構成方法を見つけることができなかったので、自分でやり、十分な食べ物と衣服を持っていることにしました!
Spring Bootに他のフレームワークを統合するには、まずSpring Javaconfigメソッドを理解する必要があります。この方法を使用して他のモジュールを構成することもできます。ナンセンスが少ない、開始。 。 。
開始する前に、Maven依存関係をインポートする必要があります(Shiro-Webオプション):
<Dependency> groupid> org.apache.shiro </groupid> <artifactid> shiro-core </artifactid> <version> $ {shiro.version} </version> </dependency> <seplency> <groupd> org.apache.shiro </groupid> <artifactid> shiro-web </artifactid> <バージョン> $ {shiro.version} </version> </dependency> <dependency> <groupid> org.apache.shiro </groupid> <artifactid> shiro-spring </artifactid> <バージョン> $ {shiro.version} </version> depence> <artifactid> shiro-ehcache </artifactid> <bersion> $ {shiro.version} </version> </dependency>元のShiro統合スプリング構成は、次のように取り出されます。
<?xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans.xsd" default-lazy-init = "true"> <説明</description> <bean id = "securitymanager"> <! - 単一のレルムアプリ。複数のレルムがある場合は、代わりに「レルム」プロパティを使用してください。 - > <プロパティ名= "Realm" ref = "shirorealmimpl" /> <プロパティ名= "cachemanager" ref = "shiroehcachemanager" /> < /bean> <! - バックエンドのセキュリティデータソースに接続するために使用したい領域を定義します: - > <beanmpl " /> <bean id" name = "securitymanager" ref = "securitymanager" /> <プロパティname = "loginurl" value = " /login" /> <! - 障害後に許可またはジャンプしないページ - > <プロパティ名= "successurl" value = " /sa /index" /> <プロパティ名= "filterchaindefinitions"> <! = authc/role/edit/* = perms [role:edit]/role/save = perms [ledit]/role/list = perms [hole:view] - >/** = authc/** = anon </value> </property> </Bean> < name = "cachemanagerconfigfile" value = "classpath:ehcache-shiro.xml" /> < /bean> <! - シロの内部ライフサイクル機能の豆の実行が実装されていることを確認してください - > <bean id = "lifecybebeanpostprocessor" />> <! - aop-level confor for shirimess shirimessに次のように走る - > <! - ライフサイクルビーンプロセッサが実行されています: - > <bean depens-on = "lifecyclebeanpostprocessor"> <プロパティ名= "proxytargetclass" value = "true"/> </bean> <bean> <プロパティ名= "securitymanager" ref = "securityer"/> </bean </bean> </bean
非常に多くのクラスがあり、それらを1つずつ構成する方法はありません。 javaconfigファイルは次のとおりです。
java.util.linkedhashmapをインポートします。 java.util.mapをインポートします。 org.apache.shiro.cache.ehcache.ehcachemanagerをインポートします。 org.apache.shiro.spring.lifecybeanpostprocessorをインポートします。 org.apache.shiro.spring.security.interceptor.authorizationAttributesourceadvisorをインポートします。 Import org.apache.shiro.spring.shirofilterfactorybean; org.apache.shiro.web.mgt.defaultwebsecuritymanagerをインポートします。 Import org.springframework.aop.framework.autoproxy.defaultadvisorautoproxycreator; org.springframework.context.annotation.beanをインポートします。 org.springframework.context.annotation.configurationをインポートします。 @configuration public class shiroconfiguration {private static map <string、string> filterchaindefinitionmap = new linkedhashmap <string、string>(); @bean(name = "shirorealmimpl")public shirorealmimpl getshirorealm(){return new shirorealmimpl(); } @bean(name = "shiroehcachemanager")public ehcachemanager getehcachemanager(){ehcachemanager em = new ehcachemanager(); em.setCachemanagerconfigfile( "classpath:ehcache-shiro.xml"); emを返します。 } @bean(name = "lifecyclebeanpostprocessor")public lifecyclebeanpostprocessor getlifecybeanpostprocessor(){return new lifecyclebeanpostprocessor(); } @bean public defaultadvisorautoproxycreator getdefaultadvisorautoproxycreator(){defaultadvisorautoproxycreator daap = new defaultadvisorautoproxycreator(); daap.setproxytargetclass(true); DAAPを返します。 } @bean(name = "securityManager")public defaultwebsecuritymanager getDefaultWabsEcurityManager(){defaultWebseCurityManager dwsm = new DefaultWebseCurityManager(); dwsm.setrealm(getshirorealm()); dwsm.setcachemanager(getehcachemanager()); DWSMを返します。 } @bean public AutherizationAttributesourceadvisor getauthorizationAttributesourceadvisor(){autherizationAttributesourceadvisor aasa = new AuthorizationAttributeSourCeadVisor(); aasa.setsecuritymanager(getDefaultWebsecurityManager());新しいauthorizationAttributesourceadvisor()を返します。 } @bean(name = "shirofilter")public shirofilterfactorybean getshirofilterfactorybean(){shirofilterfactorybean shirofilterfactorybean = new shirofilterfactorybean(); shirofilterfactorybean .setsecuritymanager(getDefaultWabsecurityManager()); shirofilterfactorybean.setloginurl( "/login"); shirofilterfactorybean.setsuccessurl( "/sa/index"); FilterChainDefinitionMap.put( "/sa/**"、 "authc"); FilterChainDefinitionMap.put( "/**"、 "anon"); shirofilterfactorybean .setFilterChainDefinitionMap(FilterChainDefinitionMap); shirofilterfactorybeanを返します。 }}注:最後の1つは、FilterChainDefinitionMapの初期化です。マップはLinkedHashmapによって初期化されます。適用したら、プロパティファイルに設定してから初期化します。書き換えた後、大丈夫です。書き換えた後、大丈夫です。
ehcache-shiro.xmlに行くことを忘れないでください
<ehcache updatecheck = "false" name = "shirocache"> <defaultcache maxelementinmemory = "10000" eterinal = "false" TimetoidLeseConds = "120" Overflowtodisk = "fals" diskpersistent = "false" diskexpirythreadervalsecond> "
注:shirorealmimplクラスの公式ドキュメントを参照してください
要約します
上記は、Spring Boot Integrated Shiroの構成方法で紹介されました。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!