2013-05-17 1 views
4

J'ai actuellement une application sur laquelle j'utilise le cloud (Jelastic). J'ai ajouté des certificats SSL à mon environnement Cloud et je veux pouvoir utiliser https sur certaines pages. Je l'ai mis en œuvre les méthodes suivantes de le faire:Grails Spring Security secureChannel ne redirige pas https?

Méthode 1:

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

Méthode 2:

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

grails.plugins.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true 
grails.plugins.springsecurity.secureChannel.secureHeaderName = 'X-Forwarded-Proto' 
grails.plugins.springsecurity.secureChannel.secureHeaderValue = 'http' 
grails.plugins.springsecurity.secureChannel.insecureHeaderName = 'X-Forwarded-Proto' 
grails.plugins.springsecurity.secureChannel.insecureHeaderValue = 'https' 

donc pour la méthode 1, il fonctionne en partie quand vous allez la page d'index dans HTTP, puis essayez d'aller à la page de connexion, vous verrez un message d'erreur indiquant:

Firefox has detected that the server is redirecting the request for this address in a way that will never complete. 

La méthode 2 ne semble pas fonctionner du tout et quand je vais à la page de connexion sur HTTP cela ne me redirige pas comme je m'attendais et semble juste fonctionner sur HTTP qui est étrange.

Cette solution est hébergée dans Jelastic comme je le mentionne donc je ne sais pas si cela pourrait causer quelques problèmes, mais toute aide offerte serait géniale.

Merci à l'avance

+0

Sur quel serveur d'applications l'exécutez-vous? – allthenutsandbolts

+0

Jelastic Tomcat 6 Java 6 – user723858

+0

Deux pensées de configuration: 1) assurez-vous que votre paramètre de configuration 'grails.serverURL' est défini correctement 2) les valeurs par défaut pour' grails.plugins.springsecurity.portMapper.httpPort' et '... httpsPort' sont 8080 et 8443, qui fonctionnent correctement dans les environnements de développement par défaut, mais qui doivent souvent être remplacés en test/production. –

Répondre

1

J'ai utilisé la configuration suivante pour le déploiement sur serveur prod. Ensuite, il a commencé sur https. J'utilise jdk 1.8 et Tomcat 8.

grails.plugin.springsecurity.portMapper.httpPort = 80 
grails.plugin.springsecurity.portMapper.httpsPort = 443 
grails.plugin.springsecurity.secureChannel.secureHeaderName = 'X-FORWARDED-PROTO' 
grails.plugin.springsecurity.secureChannel.secureHeaderValue = 'http' 
grails.plugin.springsecurity.secureChannel.insecureHeaderName = 'X-FORWARDED-PROTO' 
grails.plugin.springsecurity.secureChannel.insecureHeaderValue = 'https' 
grails.plugin.springsecurity.auth.forceHttps = true 
grails.plugin.springsecurity.secureChannel.definition = [ 
     '/**':    'REQUIRES_SECURE_CHANNEL' 
] 
Questions connexes