Sto provando ad avere un contesto di sicurezza primaverile nel contesto figlio, quindi potrei avere la sicurezza dell'URL sul file di contesto del servlet.Come avere un contesto di sicurezza primaverile nel contesto figlio
ho:
<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>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:/spring-security.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>myapp-soap</servlet-name>
<servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
<init-param>
<param-name>transformWsdlLocations</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
su web.xml, configurazione di sicurezza generale sulla primavera-security.xml e
<!-- Authorization configurations -->
<security:http auto-config="false" use-expressions="true"
create-session="never"
authentication-manager-ref="authenticationManager"
entry-point-ref="authenticationEntryPoint">
<security:custom-filter
position="PRE_AUTH_FILTER" ref="serviceAuthenticationFilter"/>
<security:intercept-url
pattern="/GetForbiddenUrl" access="hasRole('roleThatDoesntExist')" />
<security:intercept-url pattern="/**" access="permitAll" />
</security:http>
<!-- annotation security -->
<security:global-method-security pre-post-annotations="enabled"/>
sul myapp-soap-servlet.xml. Non funziona, ma non riesce con
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/my-app/v1/soap]] (ServerService Thread Pool -- 192) JBWEB000284: Exception starting filter springSecurityFilterChain:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined
Tuttavia, se mi trasferisco <security:http>
parte di configurazione del contesto radice primavera-sicurezza, tutto funziona. Non dovrebbe funzionare nel modo in cui provo? Come posso ottenere la sicurezza basata su URL nel mio contesto figlio?
Ho anche provato a combinare i file di contesto in uno, ma lo stesso problema sembra verificarsi.
Sei sicuro che la vostra primavera-security.xml viene prelevato dalla primavera? –
@MaksymDemidas sì, poiché spostare la parte 'http' risulta in tutte le direttive utilizzate, sia nel contesto parnt che in quello secondario – eis