У меня есть разъем Keycloak, который позволяет мне получить имя пользователя через SSO. Я хочу использовать это имя пользователя для аутентификации пользователя, поиска его полномочий в базе данных и введения этих полномочий пользователя в систему безопасности Spring, чтобы иметь возможность использовать его функциональные возможности.
Я создал пользовательский провайдер аутентификации с пользовательским сервисом UserDetailsService, и проблема, с которой я сталкиваюсь, заключается в том, что меня каждый раз перенаправляют на страницу входа в систему безопасности. Я думаю, что когда он видит, что в запросе нет объекта аутентификации, он делает это самостоятельно.
Это код для получения имени пользователя. Я чувствую, что у меня есть большинство частей, но я не знаю , как внедрить его в весенней безопасности или, по крайней мере, все идеи, которые у меня были до сих пор, не сработают. Вот почему я надеюсь найти кого-то, кто является экспертом в области безопасности Spring, который укажет мне правильное направление.
Заранее спасибо
KeycloakSecurityContext sc = (KeycloakSecurityContext)request.getAttribute(KeycloakSecurityContext.class.getName());
IDToken idToken=sc.getIdToken();
String userId=idToken.getPreferredUsername();