2010-05-03 16 views
5

Quiero que cualquier usuario pueda enviar su nombre a un formulario de voluntario, pero solo los administradores puedan ver cualquier otra URL. Lamentablemente, parece que no puedo hacer esto correctamente. Mis recursos.xml son los siguientes;Spring Security 3.0 - Intercept-URL - Todas las páginas requieren autenticación, pero una

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/security" 
    xmlns:beans="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/spring-beans-3.0.xsd 
         http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> 
    <http realm = "BumBumTrain Personnel list requires you to login" auto-config="true" use-expressions="true"> 
     <http-basic/> 
     <intercept-url pattern="/person/volunteer*" access=""/> 
     <intercept-url pattern="/**" access="isAuthenticated()" /> 
    </http> 

    <authentication-manager alias="authenticationManager"> 
     <authentication-provider> 
      <user-service> 
       <user name="admin" password="admin" authorities="ROLE_ADMIN"/> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 
</beans:beans> 

Específicamente estoy tratando de lograr la configuración de acceso que he descrito a través de;

<intercept-url pattern="/person/volunteer*" access=""/> 
    <intercept-url pattern="/**" access="isAuthenticated()" /> 

¿Podría alguien describir cómo usar intercept-url para lograr el resultado que he descrito?

Gracias

Gav


Por alguna razón en una aplicación griales que necesitaba;

 <intercept-url pattern="/person/volunteer/**" access="" filters="none"/> 
    <intercept-url pattern="/images/**" access="" filters="none"/> 
    <intercept-url pattern="/css/**" access="" filters="none"/> 
    <intercept-url pattern="/js/**" access="" filters="none"/> 
    <intercept-url pattern="/**" access="ROLE_ADMIN" /> 

Para que esto funcione, tenga en cuenta la diferencia en la primera regla.

Respuesta

8

¿Qué exactamente no funciona como esperabas? ¿Qué va mal?

Creo acceso = "" no es lo que esperas ... Usar el formato de los documentos:

<intercept-url pattern="/login.jsp*" filters="none"/> 

Si usted no utiliza la autenticación predeterminada (que lo hace) que se necesita para agregue un WebExpressionVoter porque utiliza las expresiones expressions doc

+0

a partir del resorte 3.1, '' se debe utilizar. –

1

Hola reemplace access="" con access="permitAll" para la url que desea convertir sin autenticación.

Cuestiones relacionadas