Я много пытаюсь правильно внедрить Stomp (websocket) Аутентификация и Авторизация с помощью Spring -Security. Для потомков я отвечу на свой вопрос, чтобы предоставить руководство.
Проблема
Spring Документация WebSocket (для аутентификации) выглядит нечетко ATM (IMHO). И я не мог понять, как правильно обрабатывать Аутентификация и Авторизация.
Что я хочу
- Аутентифицировать пользователей с логином/паролем.
- Предотвращение анонимных пользователей CONNECT через WebSocket.
- Добавить уровень авторизации (пользователь, admin,...).
- Наличие
Principal
доступно в контроллерах.
Что я не хочу
- Аутентификация на конечных точках согласования HTTP (так как большинство библиотек JavaScript не отправляет заголовки аутентификации вместе с вызовом согласования HTTP).