Отключить поисковый контроллер по умолчанию в граалях
Есть ли способ отключить контроллер, который является частью какого-либо плагина (с возможностью поиска в моем случае) в Grails? Единственные два способа, которыми я могу придумать, это указать 404 страницу в UrlMappings [1] или написать фильтр для того же самого. Однако мне кажется, что это скорее обходной путь, чем правильное решение. Также, по крайней мере, в случае плагина Searchable необходимость избавиться от контроллера по умолчанию и представления кажется мне довольно распространенной, так как они в основном бесполезны.
[1] это также было принято на странице поиска отключаемых плагинов.
1 ответ
Если вы используете Spring Spring-Security-Core, то будет очень легко ограничить контроллеры.
Вам просто нужно разместить следующий код в config.groovy
grails.plugins.springsecurity.rejectIfNoRule = true //Deny all urls by default
grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap
grails.plugins.springsecurity.interceptUrlMap = [
/** Start IS_AUTHENTICATED_ANONYMOUSLY block **/
'/about/**': ['IS_AUTHENTICATED_ANONYMOUSLY']
,'/': ['IS_AUTHENTICATED_REMEMBERED'] ]
Контроллеры, которые упоминаются в блоке interceptUrlMap, доступны.