يوفر Spring Boot إطار مصادقة مدمج ، ويوفر أيضًا ملحقات تكوين JavaconFig المخصصة. يعد Spring-Sercurity أيضًا إطارًا ممتازًا ، لكنني معتاد على استخدام إطار Apache Shiro. علاوة على ذلك ، كان المشروع الأصلي إطارًا متكاملًا لشيرو. ذهبت عبر الإنترنت للعثور على طريقة التكوين ، لكنني لم أتمكن من العثور على طريقة تكوين كاملة ، لذلك قررت أن أفعل ذلك بنفسي ولدي ما يكفي من الطعام والملابس!
لدمج الأطر الأخرى في SPRING BOOT ، يجب أولاً فهم طريقة JavaconFig الربيع. يمكنك أيضًا تكوين وحدات أخرى باستخدام هذه الطريقة. أقل هراء ، ابدأ. . .
قبل البدء ، تحتاج إلى استيراد تبعيات Maven (Shiro-Web اختياري):
<Rependency> <roupeD> org.apache.shiro </rougiD> <StifactId> shiro-core </shintifactid> <sophy> $ {shiro.version} </version> </sependency> <redency> <roupiD> org.apache.shiro </groupid> <sophy> $ {shiro.version} </version> </sependency> <redency> <roupiD> org.apache.shiro </groupId> <StifactId> shiro-spring </stifactid> <splect> $ {shiro.version} </version> <sperency> <sperencid> أو groupached> <StifactId> shiro-ehcache </artifactid> <soph> $ {shiro.version} </version> </reperence>يتم إخراج تكوين Shiro المتكامل لـ Shiro ، على النحو التالي:
<؟ XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans.xsd" default-lazy- http://shiro.apache.org/spring.html </description> <bean id = "securitymanager"> <!- تطبيق عالم واحد. إذا كان لديك العديد من العوالم ، فاستخدم خاصية "العوالم" بدلاً من ذلك. -> <name property = "Realm" ref = "shirorealmimpl" /> <property name = "cachemanager" ref = "shiroehcachemanager" /> < /bean> <!-define the ide id id id id = bean "> surfilter your extrance = shiRofilter" <shiMan ref = "securitymanager" /> <property name = "loginurl" value = " /login" /> <!-صفحة لا تحتوي على إذن أو تقفز بعد الفشل-> <property name = "suctionurl value =" /sa /index " /> <property name =" filterchaindefinitions "> <! /دور/edit/* = perms [الدور: تحرير]/rom/save = perms [الدور: تحرير]/rol/list = perms [rom: view]->/sa/** = authc/** = anon </value> </sorterper> </bean> <!-تخصيص المستخدم/معلومات المصادقة Cache ، باستخدام ehcache cache- name = "cachemanagerconfile" value = "classpath: ehcache-shiro.xml" /> </bean> <!-تأكد من تنفيذ تنفيذ الفاصوليا للوظيفة الداخلية لشيرو الداخلية-insions-insitions for shiros mring. تشغيل فقط بعد-> <!-تشغيل دورة الحياة التي تم تشغيلها:-> <bean تعتمد على = "LifecyCleBeanPostProcessor"> <property name = "proxytargetclass" value = "true"/> </bean> <bean> <property name = "securitymanager"
هناك العديد من الفصول ، ولا توجد طريقة لتكوينها واحدًا تلو الآخر. ملف javaconfig كما يلي:
استيراد java.util.linkedhashmap ؛ استيراد java.util.map ؛ استيراد org.apache.shiro.cache.ehcache.ehcachemanager ؛ استيراد org.apache.shiro.spring.lifecyclebeanpostprocessor ؛ استيراد org.apache.shiro.spring.security.Interceptor.AuthorizationAtributesourCeadVisor ؛ استيراد org.apache.shiro.spring.shirofilterfactorybean ؛ استيراد org.apache.shiro.web.mgt.defaultwebsecurityManager ؛ استيراد org.springframework.aop.framework.autoproxy.defaultAdvisorautoproxyCreator ؛ استيراد org.springframework.context.annotation.bean ؛ استيراد org.springframework.context.annotation.configuration ؛ configuration الفئة العامة shiroconfiguration {خريطة ثابتة خاصة <string ، string> filterChainDefinitionMap = new LinkedHashMap <string ، string> () ؛ bean (name = "shirorealmimpl") public shirorealmimpl getShirorealM () {return new ShirorealMimpl () ؛ } bean (name = "shiroehcachemanager") public ehcachemanager gethecachemanager () {ehcachemanager em = new ehcachemanager () ؛ em.setCachemanagerConfiSfile ("classpath: ehcache-shiro.xml") ؛ العودة م ؛ } bean (name = "LifecyCleBeanPostProcessor") Public LifecyCleBeanPostProcessor getLifecycleBeanPostProcessor () {return new LifecyCleBeanPostProcessor () ؛ } bean public defaultAdvisoraUtoproxyCreator getDefaultAdvisoraUtoproxyCreator () {defaultAdvisoraUtoproxycreator daap = new DefaultAdaDautoproxyCreator () ؛ daap.setproxytargetClass (صواب) ؛ إرجاع داب. } bean (name = "SecurityManager") Public DefaultWebSecurityManager getDefaultWebSecurityManager () {defaultWebSecurityManager dwsm = new DefaultWebSecurityManager () ؛ DWSM.SetRealm (getShirorealM ()) ؛ DWSM.SetCachemanager (gethecachemanager ()) ؛ إرجاع DWSM. } bean publicizationattributesourceadvisor getAuthorizationAtributesourCeadVisor () {elevorizationArtributesourCeadVisor aasa = uputizationAtributesourCeadVisor () ؛ AASA.SetSecurityManager (getDefaultWebsCurityManager ()) ؛ إرجاع ترخيص جديد computtributesourceadvisor () ؛ } bean (name = "shirofilter") public shirofilterfactorybean getShirofilterfactorybean () {shirofilterfactorybean shirofilterfactorybean = new Shirofilterfactorybean () ؛ Shirofilterfactorybean .SetSecurityManager (getDefaultWebsCurityManager ()) ؛ shirofilterfactorybean.setLoginurl ("/login") ؛ shirofilterfactorybean.setsuccessurl ("/sa/index") ؛ FilterChainDefinitionMap.put ("/sa/**" ، "Authc") ؛ FilterChainDefinitionMap.put ("/**" ، "Anon") ؛ shirofilterfactorybean .SetFilterChainDefinitionMap (FilterChainDefinitionMap) ؛ إرجاع shirofilterfactorybean ؛ }}ملاحظة: آخر واحد هو تهيئة FilterChainDefinitionMap. تتم تهيئة الخريطة بواسطة LinkedHashMap. عند تطبيقه ، قم بتكوينه في ملف الخصائص ، ثم تهيئته. بعد إعادة كتابته ، سيكون على ما يرام. بعد إعادة كتابة ، يجب أن يكون على ما يرام.
لا تنس الذهاب إلى ehcache-shiro.xml
<ehcache updatecheck = "false" name = "shirocache"> <defaultCache maxElementSinMemory = "10000" eternal = "false" timetoidleSeconds = "120"
ملاحظة: يرجى الرجوع إلى الوثائق الرسمية لفئة ShirorealMimpl
لخص
ما سبق هو طريقة تكوين SPRING SPRING BOOT المتكاملة التي قدمها لك Shiro. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!