Благодарю за ответ.
На самом деле, у меня проблема скорее не уровня реализации, а уровня архитектуры.
Почитав Фаулера, пришел к выводу, что не совсем туда, куда нужно попытался впихнуть бизнес-логику безопасности.
Нужно выделить слой служб и в этом слое уже реализовывать логику безопасности. А сам слой служб выставлять как програмный интерфейс бизнес-логики приложения.