Роли / привилегии в приложении Spring / Hibernate
-
16-09-2019 - |
Вопрос
В банковском или подобном приложении обычно определено несколько ролей и требуются соответствующие привилегии (например, обычный пользователь может только выполнять транзакции, но не публиковать их, в то время как супервизор может проверять и публиковать их, своего рода создатель / контролер).Нам также нужно добавить новые роли и привилегии в систему (не уверен насчет последнего).
Как вы достигаете этого доступа на основе ролей в приложении Spring / Hibernate?Особенно с точки зрения расширения для добавления новых ролей / привилегий.Может Асеги (Я никогда им не пользовался) помочь?Я был бы признателен за любую другую идею, которая может помочь мне достичь вышеизложенного.
Спасибо,
Решение
Как упоминал даффимо, Acegi был переименован в "Spring Security", и это то, что я бы рекомендовал, если вы уже работаете с Spring.
В Интернете есть больше документации по Acegi, чем по Spring Security, поэтому, если вы сомневаетесь, вы можете найти полезную информацию в документах / руководствах Acegi, а также в более свежих материалах Spring.
Если вы можете спроектировать свою таблицу пользователей в соответствии с концепцией Spring Security (имя пользователя, пароль, роли, каждая с определенными указанными типами и именами), то вы можете использовать классы DAO Spring Security прямо из коробки;если нет, вы создаете крошечный класс адаптера, чтобы подключить Spring Security к вашей базе данных для пользовательского запроса.
Вы можете указать требуемые роли для каждого сервлета / URL-адреса или даже на уровне метода.Мне потребовалось день или два, чтобы разобраться в используемых концепциях, но после этого настройка стала достаточно простой, и я был рад, что они уже решили большинство проблем, возникающих в связи с веб-безопасностью.
Другие советы
Да, Spring Security (ранее известная как ACEGI) может это сделать.