Yes, see: https://github.com/apache/shiro/blob/master/samples/spring-xml/src/main/webapp/WEB-INF/applicationContext.xml
I'd typically recommend programatic configuration of beans, but either way will work On Mon, Jun 5, 2017 at 7:37 PM, Yu Wei <[email protected]> wrote: > Without shiro.ini, should I configure all shiro related in > applicationcontext.xml? > > Jared > Interested in cloud computing,big data processing,linux > 2017年6月6日 04:28于 Brian Demers <[email protected]>写道: > You shouldn't need a shiro.ini for the spring integration at all, (unless > you are using an Ini based Realm of course) > > On Mon, Jun 5, 2017 at 2:22 PM, Yu Wei <[email protected]> wrote: > >> Hi, >> >> I still don't quite understand the relationship between shiro.ini and >> applicationContext.xml. >> >> For example, I put following stuff into shiro.ini. >> >> datasrc = org.apache.shiro.jndi.JndiObjectFactory >> datasrc.requiredType = javax.sql.DataSource >> datasrc.resourceName = mysql/ustudy >> datasrc.resourceRef = true >> >> >> Then I got following exception, >> >> 05-Jun-2017 18:15:54.326 SEVERE [main] >> org.apache.catalina.core.StandardContext.listenerStart >> Exception sending context initialized event to listener instance of class >> [org.apache.shiro.web.env.EnvironmentLoaderListener] >> java.lang.IllegalStateException: Unable to look up javax.sql.DataSource >> with jndi name 'mysql/ustudy'. >> at org.apache.shiro.jndi.JndiObjectFactory.getInstance(JndiObje >> ctFactory.java:44) >> at org.apache.shiro.config.ReflectionBuilder.resolveReference(R >> eflectionBuilder.java:417) >> at org.apache.shiro.config.ReflectionBuilder.resolveValue(Refle >> ctionBuilder.java:572) >> >> Which other configurations did I missed? >> >> >> Thanks, >> >> Jared, (韦煜) >> Software developer >> Interested in open source software, big data, Linux >> ------------------------------ >> *From:* Laszlo Hornyak <[email protected]> >> *Sent:* Monday, June 5, 2017 3:45:02 PM >> *To:* [email protected] >> *Subject:* Re: Re: "No bean named 'shiroFilter' available" when try to >> integrate shiro with spring boot >> >> Yes I believe the shiro.ini is needed or at least it is practical to have >> it separate from the rest of your application configuration, since >> typically applicationContext will be all the same in dev and production >> environment, while you very likely need completely different security >> settings. >> >> On Mon, Jun 5, 2017 at 2:15 AM, Yu Wei <[email protected]> wrote: >> >>> I didn't have web.xml at first, it's generated by spring >>> autoconfiguration. When integrated with shiro, I only added shiro related >>> in web.xml. >>> I have little experience in using spring and shiro. This is my mistake. >>> Another question is about shiro.ini. >>> Is shiro.ini still needed when integrating with spring? I only found >>> description about setting applicationContext.xml when integrating with >>> shiro. >>> >>> Thanks for your help. >>> Jared >>> Interested in cloud computing,big data processing,linux >>> 2017年6月5日 04:54于 Laszlo Hornyak <[email protected]>写道: >>> Hi, >>> >>> Did spring start up at all? You do not have it in your web.xml... >>> >>> <context-param> >>> <param-name>contextConfigLocation</param-name> >>> <param-value> >>> WEB-INF/applicationContext.xml >>> </param-value> >>> </context-param> >>> >>> <listener> >>> <listener-class> >>> org.springframework.web.context.ContextLoaderListener >>> </listener-class> >>> </listener> >>> >>> >>> >>> >>> On Sun, Jun 4, 2017 at 7:23 PM, Yu Wei <[email protected]> wrote: >>> >>>> Hi guys, >>>> >>>> I tried to integrate shiro with spring boot by following document in >>>> Apache shiro. >>>> >>>> I found a problem when trying to deploy war to tomcat as below: >>>> >>>> 04-Jun-2017 16:16:00.163 INFO [main] >>>> org.apache.catalina.core.ApplicationContext.log >>>> Initializing Shiro environment >>>> 04-Jun-2017 16:16:00.448 SEVERE [main] >>>> org.apache.catalina.core.StandardContext.filterStart >>>> Exception starting filter [shiroFilter] >>>> org.springframework.beans.factory.NoSuchBeanDefinitionException: No >>>> bean named 'shiroFilter' available >>>> at org.springframework.beans.factory.support.DefaultListableBea >>>> nFactory.getBeanDefinition(DefaultListableBeanFactory.java:687) >>>> at org.springframework.beans.factory.support.AbstractBeanFactor >>>> y.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1207) >>>> at org.springframework.beans.factory.support.AbstractBeanFactor >>>> y.doGetBean(AbstractBeanFactory.java:284) >>>> >>>> >>>> According to shiro document, I should add applicationContext.xml with >>>> proper settings. Where should I place the context file? In WEB-INF or other >>>> directory? >>>> >>>> >>>> How could I fix this problem? >>>> >>>> >>>> Detailed configuration is as below, >>>> >>>> >>>> Web.xml in directory WEB-INF is as following, >>>> >>>> <?xml version="1.0" encoding="UTF-8"?> >>>> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" >>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee >>>> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> >>>> <!-- configuration for Aapache shiro --> >>>> <listener> >>>> <listener-class>org.apache.shiro.web.env.EnvironmentLoaderLi >>>> stener</listener-class> >>>> </listener> >>>> >>>> <filter> >>>> <filter-name>shiroFilter</filter-name> >>>> <filter-class>org.springframework.web.filter.DelegatingFilte >>>> rProxy</filter-class> >>>> <init-param> >>>> <param-name>targetFilterLifecycle</param-name> >>>> <param-value>true</param-value> >>>> </init-param> >>>> </filter> >>>> >>>> <filter-mapping> >>>> <filter-name>shiroFilter</filter-name> >>>> <url-pattern>/*</url-pattern> >>>> <dispatcher>REQUEST</dispatcher> >>>> <dispatcher>FORWARD</dispatcher> >>>> <dispatcher>INCLUDE</dispatcher> >>>> <dispatcher>ERROR</dispatcher> >>>> </filter-mapping> >>>> >>>> </web-app> >>>> >>>> applicationContext.xml is placed in folder WEB-INF, and content is as >>>> below, >>>> >>>> <bean id="shiroFilter" class="org.apache.shiro.spring >>>> .web.ShiroFilterFactoryBean"> >>>> <property name="securityManager" ref="securityManager"/> >>>> <property name="filterChainDefinitions"> >>>> <value>/dashboard/users/list = authc, roles[admin]</value> >>>> </property> >>>> </bean> >>>> >>>> <bean id="securityManager" class="org.apache.shiro.web.mg >>>> t.DefaultWebSecurityManager"> >>>> <!-- Single realm app. If you have multiple realms, use the >>>> 'realms' property instead. --> >>>> <property name="realm" ref="myRealm"/> >>>> <!-- By default the servlet container sessions will be used. >>>> Uncomment this line >>>> to use shiro's native sessions (see the JavaDoc for more): --> >>>> <!-- <property name="sessionMode" value="native"/> --> >>>> </bean> >>>> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring >>>> .LifecycleBeanPostProcessor"/> >>>> >>>> <!-- Define the Shiro Realm implementation you want to use to connect >>>> to your back-end --> >>>> <!-- security datasource: --> >>>> <bean id="myRealm" class="org.apache.shiro.realm.jdbc.JdbcRealm"> >>>> </bean> >>>> <bean >>>> class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" >>>> depends-on="lifecycleBeanPostProcessor"/> >>>> <bean class="org.apache.shiro.spring.security.interceptor.Authoriz >>>> ationAttributeSourceAdvisor"> >>>> <property name="securityManager" ref="securityManager"/> >>>> </bean> >>>> </beans> >>>> >>>> >>>> >>>> Thanks, >>>> >>>> Jared, (韦煜) >>>> Software developer >>>> Interested in open source software, big data, Linux >>>> >>> >>> >>> >>> -- >>> >>> EOF >>> >> >> >> >> -- >> >> EOF >> > >
