Spring Boot предоставляет встроенную структуру аутентификации, а также предоставляет индивидуальные расширения конфигурации Javaconfig. Spring-Sercurity также является отличной структурой, но я привык использовать платформу Apache Shiro. Более того, оригинальный проект был интегрированной платформой Shiro. Я вышел в интернет, чтобы найти метод конфигурации, но я не смог найти полный метод конфигурации, поэтому я решил сделать это сам и иметь достаточно еды и одежды!
Чтобы интегрировать другие рамки на Spring Boot, вы должны сначала понять метод Spring Javaconfig. Вы также можете настроить другие модули, используя этот метод. Меньше чепухи, начинай. Полем Полем
Перед началом вам необходимо импортировать зависимости Maven (Shiro-Web необязательно):
<dependency> <groupid> org.apache.shiro </groupid> <artifactid> shiro-core </artifactid> <sersive> $ {shiro.version} </version> </rediceS> <depected> <groupid> org.apache.shiro </Groupid> <ratifactid> shiro-web </artifactid> <strifactid> shiro-web </artifactid> <sersion> $ {shiro.version} </version> </deperency> <DepeCtency> <groupid> org.apache.shiro </GroupId> <artifactid> shiro-spring </artifactid> <sersion> $ {shiro.version} </version> </repertice> <dependency> <groupd> org.apache.shir chyroshir <artifactid> shiro-ehcache </artifactid> <sersion> $ {shiro.version} </version> </deperiancy>Оригинальная интегрированная конфигурация пружины 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-init = "true"> <dercile> Shiro Security Configurut </description> <bean id = "SecurityManager"> <!- приложение для одного царства. Если у вас есть несколько сфер, вместо этого используйте свойство «сферы». -> <name = name = "Realm" ref = "shiroRealmimpl" /> <name = "cachemanager" ref = "shirohcachemanager" /> < /bean> <!-Определите сферу, которую вы хотите использовать для подключения к вашему набору безопасности. ref = "SecurityManager" /> <name = "loginUrl" value = " /login" /> <!-страница, которая не имеет разрешения или прыжков после сбоя-> <name = "successUrl" value = " /sa /index" /> <property name = "filterchainDefinitions"> <!-, Roles [Admin], Perms [документ: uppert] <value> <! /ROLE/EDIT/* = PERM [ROL: REDIT]/ROLE/SAVE = PERM [ROL: EDIT]/ROLE/LIST = PERMS [ROL: VIEW]->/SA/** = AUTHC/** = ANON </value> </Property> </bean> <!-Пользователь пользователя/Информация об аутентификации, использование EHCache Cache-> <Bean Id = " name = "cachemanagerconfigfile" value = "classpath: ehcache-shiro.xml" /> < /bean> <!-Убедитесь, что выполнение функции внутреннего жизненного цикла Широ-> <bean id = " бобы. Только запустите-> <!-LifeCyclebeanProcessor Run:--> <Bean зависит от = "LifeCyclebeanpostProcessor"> <name = "proxytargetClass" value = "true"/> </bean> <bean> <property name = "SecurityManager" Ref = "Security Manager"/> </bean> </beans> </beans>
Есть так много классов, и нет способа настраивать их один за другим. Файл javaconfig заключается в следующем:
импортировать java.util.linkedhashmap; импортировать java.util.map; Import org.apache.shiro.cache.ehcache.ehcachemanager; Import org.apache.shiro.spring.lifecyclebeanpostprocessor; Импорт org.apache.shiro.spring.security.interceptor.authorizationattributesourceadvisor; Импорт org.apache.shiro.spring.shirofilterfactorybean; Import 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 = "shiroLealMimpl") public shiroRealMimpl getShiroRealM () {return new shiroRealMimpl (); } @Bean (name = "shirohcachemanager") public ehcachemanager getehcachemanager () {ehcachemanager em = new ehcachemanager (); em.setcachemanagerconfigfile ("classpath: ehcache-shiro.xml"); вернуть их; } @Bean (name = "LifeCyclebeanpostProcessor") Public LifeCyclebeanpostProcessor getLifeCyclebeanpostProcessor () {return new LifeCyclebeanpostProcessor (); } @Bean public DefaultAdvisorautoproxycreator getDefaultAdvisorautoproxycreator () {defaultadvisorautoproxycreator daap = new DefaultAdvisoroproxycreator (); DAAP.SetProxyTargetClass (true); вернуть DAAP; } @Bean (name = "SecurityManager") public DefaultWebseCerationManager getDefaultWebseCerationManager () {defaultWebSecurityManager dwsm = new DefaultWebsecurityManager (); dwsm.setRealm (getShiroRealm ()); dwsm.setcachemanager (getehcachemanager ()); вернуть DWSM; } @Bean Public AuthorizationAttributesourceadvisor getAuthorizationattributesourceadvisor () {AuthorizationAttributesourceadvisor aasa = new Authorizationattributesourceadvisor (); AASA.SetSecurityManager (getDefaultWebsecurityManager ()); вернуть новый Authorizationattributesourceadvisor (); } @Bean (name = "shirofilter") public shirofilterfactorybean getshirofilterfactorybean () {shirofilterfactorybean shirofilterfactorybean = new ShirofilterFactorybean (); ShirofilterFactorybean .seTecurityManager (getDefaultWebsecurityManager ()); 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" timeToLiveSeconds="120" overflowToDisk="false" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" /> </ehcache>
Примечание. Пожалуйста, обратитесь к официальной документации для класса ShiroRealMimpl
Суммировать
Выше приведено метод конфигурации Spring Boot Integrated Shiro, представленный вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!