У меня есть приложение, в котором я использую пружинную защиту вместе с мелодией grails. Я планирую запустить мелодию Grails в производственной среде, но не хочу, чтобы посетители имели к ней доступ. Как мне этого добиться? Я попытался создать фильтр в Grails (просто показывая пример того, что я пытаюсь, а не фактический код) -
def filters = {
allURIs(uri:'/**') {
before = {
//...
if(request.forwardURI.indexOf("admin") != -1 ||
request.forwardURI.indexOf("monitoring") != -1) {
response.sendError 404
return false
}
}
}
}
Но это не работает, так как запрос на "мониторинг" не попадает в этот фильтр. Я даже не хочу, чтобы пользователь знал, что такой URL существует, поэтому я хочу проверить в фильтре, что, если «мониторинг» - это URL, я показываю страницу с ошибкой 404. Это также причина, почему я не хочу защищать этот URL с помощью Spring Security, так как он покажет страницу «доступ запрещен».
По сути, я хочу, чтобы URL существовал, но он должен быть невидимым для пользователей. Я хочу, чтобы доступ был открыт только для определенных IP-адресов для этих специальных URL-адресов.
В другом примечании: возможно ли написать фильтр грааилса, который «действует» до срабатывания фильтра безопасности пружины? Я хочу иметь возможность выполнить некоторую фильтрацию, прежде чем пересылать запросы в систему безопасности Spring. Написание фильтра Grails, как описано выше, не помогает. Фильтр безопасности Spring срабатывает первым, если я получаю доступ к защищенному ресурсу, и этот фильтр не вызывается.
Спасибо