2010-04-22 36 views
7

Estoy tratando de hacer una autenticación básica muy simple con Spring Security. He configurado el espacio de nombre correctamente y no hay excepciones en el servidor. En mi "servlet.xml" Tengo la próxima primavera para la Seguridad:Spring Security HTTP Basic Autenticación

<security:http> 
    <security:http-basic></security:http-basic> 
    <security:intercept-url method="POST" pattern="/**" access="ROLE_USER" /> 
</security:http> 


<security:authentication-manager alias="authenticationManager"> 
    <security:authentication-provider> 
     <security:user-service> 
      <security:user name="cucu" password="tas" authorities="ROLE_USER" /> 
      <security:user name="bob" password="bobspassword" authorities="ROLE_USER" /> 
     </security:user-service> 
    </security:authentication-provider> 
</security:authentication-manager> 

Casi todo va perfecto: Los métodos que no son POST no solicita ningún tipo de inicio de sesión, y el método de avisos que POST. El problema es que ni cucu ni bob pueden iniciar sesión allí. ¿Alguien puede ver que estoy haciendo mal?

¡Gracias de antemano! ;-)

+0

¿Qué versión de Spring Security está utilizando? – Gandalf

+0

Lo siento, lo olvidé, Spring Security 3 – raspayu

+0

¿Se puede publicar el seguimiento/salida de la pila del error real? – Gandalf

Respuesta

23

Respuesta automática

T_T Dos días después de golpear la cabeza contra el código de esta ...

parece que no es un problema de el código. Estaba usando Weblogic con él y Weblogic captura las solicitudes con el encabezado de "autorización", por lo que no llega a mi administrador de autenticación. Lo probé con glassfish, y funciona perfectamente.

La búsqueda de cierta información, me encontré con una entrada útil en el blog siguiente: http://yplakosh.blogspot.com/2009/05/how-to-fix-basic-authentication-issue.html

de agregar la siguiente línea en el archivo config.xml de mi servidor Weblogic (<security-configuration> sección):

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>

Weblogic no detectará las credenciales de autenticación básicas nuevamente, por lo que será su administrador de autenticación el que lo manejará.

Espero que pueda ahorrar algo de tiempo a cualquiera :-)

+4

Muchas gracias por publicar esta solución. Acabo de empezar a encontrarme con este problema y encontré tu publicación después de buscar en Goolgle. –

+0

Hehe, estoy muy feliz de haber ayudado a ahorrar algo de tiempo ;-) – raspayu

1

intento:

<http auto-config="true> 
    <security:intercept-url method="POST" pattern="/**" access="ROLE_USER" /> 
    <http-basic /> 
</http> 
+0

Gracias por el consejo. Probé también con la configuración automática en verdadero, pero creo que me falta algo más ... pero no sé qué. Creo que mi código es realmente simple, no debería haber problemas con eso. – raspayu

Cuestiones relacionadas