Grails 3.0.1 здесь. Я хочу создать определенную структуру URL / контроллера. Мое приложение развертывается в корневом контексте (/
), то есть локально оно работает как http://localhost:8080
, а нелокально как http://someserver.example.org
.
Я хочу, чтобы все в /app/*
было аутентифицировано и считалось частью «основного приложения» (требуется вход в систему). Все, что находится за пределами этого URL-адреса, считается частью общедоступного веб-сайта (не аутентифицировано). Однако я хочу, чтобы сам /app/
был просто своего рода заполнителем; Я не хочу, чтобы это был контроллер Grails. Следовательно:
http://localhost:8080/app
можно настроить (UrlMappings
?) Для отображения страницы входаhttp://localhost:8080/app/<controller>/<action>
следует типичному костюму контроллера / действия Grails и будет вызывать правильное действие контроллера.
Следовательно, http://localhost:8080/app/order/create
будет аутентифицирован и при входе в систему вызовет действие OrderController#create
, которое может отобразить createOrder.gsp
.
Мне интересно, для чего нужен подход Grails 3.x:
- Разрешение существования
/app/
, но не в качестве контроллера (как я уже сказал, возможно, просто перенаправление / отображение на страницу входа в систему) - Разрешение всему, что ниже
/app/
, следовать парадигме контроллера / действия
Мысли о том, как это реализовать?
Обновлять
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
"/app/$controller/$action?/$id?" {
???
}
"/"(view:"/index")
"500"(view:'/error')
"404"(view:'/notFound')
}
}