В моем приложении мне нужно защитить доступ к контроллеру с помощью Spring Security
В частности, я хотел бы разрешить / запретить доступ ко всем методам контроллера пользователям на основе грантов.
Вот пример контроллера:
@Controller
@RequestMapping("${path.myapp}" + "/accounts")
public class AccountsController extends AbstractCrudController<AccountsBean, Long> {
...
}
В моем приложении у каждого пользователя есть список функций (определенный в таблице БД, которая связывает USER-> FUNCTIONALITY). Пользователь также имеет роль, но пользователи с одинаковыми ролями могут использовать различные функции.
Когда приложение запускается и пользователь входит в систему, я читаю все функции, связанные с пользователем, и правильно отображаю / скрываю пункты меню.
Вот куча JSP:
<sec:authorize access="hasAnyRole('Anagrafica -> Accounts')" >
<li id="accounts"><a href="${anagraficaPath}/accounts/index.html"><fmt:message key="menu.anagrafica.accounts"/></a></li>
<li class="divider"></li>
</sec:authorize>
Как я могу защитить этот контроллер, чтобы запретить пользователям, у которых нет функции 'Anagrafica -> Учетные записи'?