4

私は現在、クラウド (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 でホストされているため、それがいくつかの問題を引き起こしている可能性があるかどうかはわかりませんが、提供されるヘルプは素晴らしいでしょう.

前もって感謝します

4

1 に答える 1

2

prod サーバーへのデプロイには、次の構成を使用しました。その後、httpsで開始しました。jdk 1.8 と 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'
]
于 2015-07-24T14:15:16.467 に答える