2012-05-26 21 views
6

Mi piacerebbe avere la mia applicazione in esecuzione esclusivamente con SSL attivato. Sto usando il plug-in di base di Spring Security.Grails - nucleo di sicurezza SSL e Spring

Questo è come tento di farlo in Config.groovy:

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

mi aspettavo questo a causare reindirizza ogni volta vorrei provare a accedere a un URL utilizzando il protocollo HTTP. Tuttavia, non sono mai reindirizzato e posso navigare sia attraverso HTTP che HTTPS. Posso aggiungere che sto iniziando la mia applicazione utilizzando grails run-app -https

Mi sto sbagliando tutto questo?

Qualsiasi suggerimento è il benvenuto.

risposta

0

Non si dispone di caratteri jolly, quindi la definizione corrisponde letteralmente all'URL radice (/), ma non al di sotto di esso (/foo). Quello che vuoi è:

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

(si può vedere chiaramente i caratteri jolly in the documentation :-)

Infine, se il server si trova dietro un bilanciatore di carico o di altro firewall che nasconde il protocollo, verificare che stessa pagina per istruzioni sul controllo dell'intestazione.

+0

Mi spiace, ho modificato la mia domanda, ma ho avuto i caratteri jolly già nel mio codice. Sto provando questo su localhost su un sistema Fedora se questo è importante. –

1

Si può anche provare a utilizzare l'opzione forceHttps

grails.plugins.springsecurity.auth.forceHttps = true 
Problemi correlati