Я новичок в Grails и работаю над существующим приложением. Я пытаюсь заставить любого, кто использует наш сайт, всегда быть на https. Я добавил плагин Spring Security Core
//BuildConfig.groovy
compile "org.grails.plugins:spring-security-core:2.0.0"
и я только что добавил
///Config.groovy
grails.plugin.springsecurity.secureChannel.definition = [
'/**': 'REQUIRES_SECURE_CHANNEL'
Когда я пытаюсь зайти на localhost:8080/myapp, он перенаправляет меня на https://localhost:8443/myapp , но я получаю сообщение "Эта веб-страница имеет цикл перенаправления ERR_TOO_MANY_REDIRECTS".
Я добавил операторы печати в свой SecurityFilters.groovy и вижу бесконечный цикл.
baseFilter(controller: "*", action: "*")
{
before = {
println "baseFilter"
// If auth controller then ok to continue
if (controllerName.equals("auth"))
{
return true;
}
// If no subject (user) and not auth controller then user must authenticate
if (!session.subject && !(controllerName.equals("auth")))
{
params.targetUri = request.forwardURI - request.contextPath
if (params.action=="profile") {
params.targetUri=params.targetUri + "?page=" + params?.page
}
else if (params.action=="results") {
params.targetUri="/home"
}
println "baseFilter: Redirecting: PARAMS = $params"
redirect(controller:'auth', action:'login', params: params)
return false;
}
}
}
Это просто:
baseFilter
baseFilter: Redirecting: PARAMS = [action:auth, format:null, controller:login, targetUri:/login/auth]
Снова и снова.
Я пробовал много других вещей, которые я нашел на Stackoverflow и других веб-сайтах, но они либо не работают, либо слишком сложны.
Спасибо.
grails.serverURL
. Убедитесь, что он настроен на использованиеhttps
в вашемConfig.groovy
- person Joshua Moore   schedule 03.02.2016