重定向到登錄頁面我有一個Grails應用程序,使用運行在負載均衡器後面的AWS機器上的Spring Security Core。Grails Spring Security使用https
負載均衡器解密ssl連接並轉發到我們實例的端口8080,添加適當的X-Forwarded-Proto標頭。
我想直接訪問受保護的頁面,使用https重定向到登錄頁面。
的請求。例如https://myapp.com/private/page應該重定向到https://myapp.com/login/auth
我把這個在我的Config.groovy:
grails.plugin.springsecurity.secureChannel.definition = [
'/login/**': 'REQUIRES_SECURE_CHANNEL'
]
但這會導致重定向循環(HTTP代碼302)的HTTP登錄頁面( http://myapp.com/login/auth)
然後我試圖只是:
grails.plugin.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true
grails.plugin.springsecurity.auth.forceHttps = true
但這會導致一個重定向(HTTP代碼302)的HTTP登錄頁面(http://myapp.com/login/auth)
- 的問題只是生產設置(戰爭部署到Tomcat負載平衡器後面)presentig。
- 如果我在我的loacal開發機器上測試相同的config.groovy,重定向到https://myapp.com/login/auth發生得很好。
- 我試圖指定春季安全不同httpsPort,再次它的工作我的本地開發計算機上,但它是在部署應用程序,不斷重定向完全忽略到http
沒有運氣潛伏在類似的帖子,任何理念?
非常感謝您的幫助,但沒有運氣!我再現了相同的設置,也將內部端口移動到80,但它總是重定向到http ...你有什麼在grails.plugin.springsecurity.secureChannel.definition?任何想法,我怎麼能至少調試它? – Paull
我沒有爲secureChannel.definition設置值。您是否爲您的生產環境設置了grails.serverURL?那是破壞我的應用程序的其他內容,但我認爲這與設置雲端有關。我沒有用日誌進行調試。我會在配置文件中進行更改並上傳新的戰爭,然後使用瀏覽器瀏覽每個場景以查看破壞情況。然後,我會做出改變,然後再試一次。 – spock99
您使用的是什麼版本的spring security? – spock99