2012-05-26 16 views
6

Me gustaría que mi aplicación se ejecute exclusivamente con SSL activado. Estoy usando el complemento principal de Spring Security.Grails: núcleo de seguridad SSL y Spring

Esta es la forma en que intento hacer en Config.groovy:

grails.plugins.springsecurity.portMapper.httpPort = 8080 
grails.plugins.springsecurity.portMapper.httpsPort = 8443 
grails.plugins.springsecurity.secureChannel.definition = [ '/**' : 'REQUIRES_SECURE_CHANNEL'] 

me esperaba esto para causar redirige cada vez que iba a tratar de acceder a una URL mediante HTTP. Sin embargo, nunca se me redirige, y puedo navegar a través de HTTP y HTTPS. Puedo agregar que estoy comenzando mi aplicación usando grails run-app -https

¿Estoy obteniendo todo esto mal?

Cualquier sugerencia es bienvenida.

Respuesta

0

No tiene comodines, por lo que la definición corresponde literalmente a la URL raíz (/), pero nada debajo (/foo). Lo que queremos es:

grails.plugins.springsecurity.secureChannel.definition = [ '/**' : 'REQUIRES_SECURE_CHANNEL'] 
                  ^^ 

(Se puede ver claramente los caracteres comodín en the documentation :-)

Por último, si el servidor está detrás de un equilibrador de carga o de otro tipo de seguridad que oculta el protocolo, comprobar esa misma página para obtener instrucciones sobre cómo verificar el encabezado.

+0

Lo siento mucho, he editado mi pregunta pero no tenía los comodines ya en mi código. Estoy intentando esto en localhost en un sistema Fedora si eso es importante. –

1

También puede intentar usar la opción forceHttps

grails.plugins.springsecurity.auth.forceHttps = true 
Cuestiones relacionadas