Я написал небольшое веб-приложение, использующее Spring-Security и Spring-MVC с конфигурацией на основе аннотаций (@Secured). чтобы выполнить эту работу, мне пришлось разделить конфигурацию Spring-Security:
app-context.xml (включен в ContextConfigLocation web.xml)
<security:http auto-config="true"/>
app-servlet.xml (диспетчер spring-mvc загружает это)
<security:global-method-security secured-annotations="enabled"/>
Почему я должен был разделить их? когда я помещаю всю конфигурацию безопасности в app-context.xml, аннотации @Secured, похоже, игнорируются, поэтому вам не нужно входить в систему для доступа к методам @Secured Controller.
Когда я помещаю все это в app-servlet.xml, возникает следующее исключение ...
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:504)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1041)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:273)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1008)
at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:217)
at org.springframework.web.filter.DelegatingFilterProxy.initFilterBean(DelegatingFilterProxy.java:145)
at org.springframework.web.filter.GenericFilterBean.init(GenericFilterBean.java:179)
Я не понимаю: /