Основываясь на Burt Беквит в «Взлом Grails Spring Security Plugin» [http://www.slideshare.net/gr8conf/hacking-the-grails-spring-security-plugins], это должно быть возможно просто предоставить другую реализацию компонента AccessDecisionManager. Что-то вроде этого:
AccessDecisionManager (org.springframework.security.access.vote.UnanimousBased)
в resources.groovy
Когда я попробовал это, у меня были проблемы с синтаксисом конструктора в определении боба , Менеджер решения доступа хочет получить список избирателей в конструкторе, и я не мог процитировать, как получить мои избиратели, определенные в config.groovy как параметры для конструктора. Я собирался вывести свой собственный диспетчер решений (без параметров) из UnanimousBased, когда я наткнулся на исходный код AuthenticatedVetoableDecisionManager в плагине Spring Spring Security. Этот класс разбивает избирателей пополам ... все, что происходит от AuthenticatedVoter, немедленно выйдет из строя, если кто-либо откажется (например, семья AUTHENTICATED_FULLY), но все остальные избиратели пройдут, если они будут предоставлены (например, RoleVoter). Мне нужна функция AuthenticatedVoter для моего пользовательского избирателя, поэтому я просто получил от AuthenticatedVoter (чтобы переопределить все методы интерфейса, чтобы я случайно не получил функциональность базового класса) и застрял с менеджером решений по умолчанию.
Вы когда-нибудь получали ответ? У меня такой же вопрос. – Ken
Я так не верю. Весенняя безопасность оказалась плохо подходящей для нашей модели контроля доступа. Мы закончили свой собственный. – nogridbag