Как сделать авторизацию без аутентификации в Spring Security 5 - PullRequest
0 голосов
/ 13 июля 2020

Я новичок в Spring Security. Я пытаюсь интегрировать Spring Security в свое веб-приложение.

У нас есть собственный процесс аутентификации, и его нельзя изменить. Тем не менее, как только пользователь успешно завершит этот процесс, он загружается в сеанс, включая роли.

Мы пытаемся использовать эту информацию для процесса авторизации Spring Security, то есть для заставить его получать роли из пользовательского сеанса, а не получать их через поставщика аутентификации.

Есть ли способ добиться этого в Spring Security 5?

1 Ответ

0 голосов
/ 13 июля 2020

Это должно работать. Просто настройте свою безопасность Spring, поскольку вы собираетесь использовать аутентификацию http basi c.

А затем, когда вы завершите свой собственный вход в систему, установите это так, чтобы она была доступна для безопасности Spring для авторизации.

Authentication authentication = new 
    UsernamePasswordAuthenticationToken("username", null, authoritiesOfUser);
SecurityContextHolder.getContext().setAuthentication(authentication);
HttpSession session = req.getSession(true);
session.setAttribute(SPRING_SECURITY_CONTEXT_KEY, 
                     SecurityContextHolder.getContext()); 

Spring Security имеет фильтр под названием SecurityContextPersistenceFilter, он автоматически берет то, что вы установили выше, помещает его в сеанс http со своим собственным ключом, а затем повторно заполняет SecurityContextHolder.getContext() при последующих запросах.

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