Spring MVC Custom Authentication - PullRequest
       8

Spring MVC Custom Authentication

2 голосов
/ 08 октября 2009

То, чего я хочу добиться, - это фильтр (или аналогичный), который будет обрабатывать модель аутентификации для моего приложения Spring MVC. Мое приложение также размещено на Google App Engine.

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

Я обнаружил, что не так много информации о том, как этого добиться. В идеале я хотел бы иметь возможность перехватывать вызов к действиям моего контроллера и иметь возможность считывать аннотации и обрабатывать их соответствующим образом. Я надеюсь, что кто-то здесь немного больше знает о Spring MVC и о том, где я могу ввести какой-то пользовательский код, и сможет указать мне правильное направление.

1 Ответ

3 голосов
/ 08 октября 2009

Я бы все еще использовал Spring Security для этого. Он может не иметь класса, который на 100% соответствует вашей схеме входа в систему, но для этого и существует наследование. Напиши свое. Вы можете легко избавиться от основанного на ROLE DecisionManager и настроить его в соответствии с вашей парадигмой.

Основываясь на ваших комментариях, вы проверили MethodInterceptor весной? Он создает прокси, который будет перехватывать вызовы любого метода в проксируемом классе и позволит вам запускать или запрещать метод на основе любого кода, который вы хотите. В Spring Security есть AbstractSecurityInterceptor, но я нахожу его очень сложным в использовании, и для большинства решений о доступе я считаю, что это излишне.

Поэтому я бы использовал Spring Security для аутентификации пользователя (и заполнения SecurityContext), а затем использовал перехватчики, чтобы перекрыть доступ к методам в ваших контроллерах, которые вы хотите защитить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...