0
我想實現我的應用程序安全春3.2保安過濾器:無contextListener
我有一個使用的web.xml如下應用:
<web-app>
<display-name>myapp</display-name>
<servlet>
<servlet-name>tmodel</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>tmodel</servlet-name>
<url-pattern>/tm/*</url-pattern>
</servlet-mapping>
</web-app>
這裏是我的* -servlet。 XML:
<context:annotation-config />
<context:component-scan base-package="net.nls"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<!-- Configures Spring MVC DataBinder instances -->
<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="validator" ref="validator" />
</bean>
</property>
</bean>
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
<!-- Creates the JSR-303 Validator -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<bean id="beansConfiguration" class="net.nls.tm.config.BeansConfiguration"/>
<bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
destroy-method="stop">
<property name="connectionFactory">
<bean id="cf" class="org.apache.activemq.ActiveMQConnectionFactory"
p:brokerURL="tcp://localhost:61616"
p:useAsyncSend="true"
/>
</property>
</bean>
<!-- Spring JMS Template -->
<bean id="myJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory">
<ref local="jmsFactory"/>
</property>
</bean>
<task:annotation-driven executor="myExecutor" scheduler="myScheduler"/>
<task:executor id="myExecutor" pool-size="50"/>
<task:scheduler id="myScheduler" pool-size="10"/>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
當我看着春天的安全文檔版本3.2,的指令之一是增加:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
,然後將此添加到我的* -servlet.xml後綴
<http auto-config='true'>
<intercept-url pattern="/**" access="ROLE_USER" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="jimi" password="jimispassword" authorities="ROLE_USER, ROLE_ADMIN" />
<user name="bob" password="bobspassword" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
當我編譯和運行,我得到了以下異常應用程序:
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:251)
當我搜索我看到網絡添加人
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
然後一切停止工作。
出了什麼問題?考慮到我是如何解決這個問題的?
我可以在* -servlet.xml中移動我的過濾器嗎?如果是的話,怎麼樣?
嗨克里斯,感謝您的答覆,但如果我們的監聽器添加到* -servlet .xml你得到一個異常:D 這段代碼被添加到web.xml – user2049122