В настоящее время у меня есть приложение, над которым я работаю, которое я использую в облаке (Jelastic). Я добавил SSL-сертификаты в свою облачную среду и теперь хочу использовать https на определенных страницах. Я реализовал следующие методы:
Способ 1:
grails.plugins.springsecurity.secureChannel.definition = [
'/login/**': 'REQUIRES_SECURE_CHANNEL'
]
Метод 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'
Таким образом, для метода 1 он частично работает, так как когда вы переходите на страницу индекса в HTTP, а затем пытаетесь перейти на страницу входа, вам будет показано сообщение об ошибке:
Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
Однако метод 2, похоже, вообще не работает, и когда я перехожу на страницу входа в систему по HTTP, он не перенаправляет меня, как я ожидал, и просто работает по HTTP, что странно.
Это решение размещено в Jelastic, как я упоминал, поэтому не уверен, что это может вызвать некоторые проблемы, но любая предложенная помощь была бы отличной.
заранее спасибо
grails.serverURL
определен правильно 2) значения по умолчанию дляgrails.plugins.springsecurity.portMapper.httpPort
и...httpsPort
— 8080 и 8443, которые отлично работают в средах разработки по умолчанию, но часто должны быть переопределены в тестовой / рабочей среде. - person Andrew   schedule 17.05.2013