У меня есть настройка весенней загрузки OAuth для AuthServer, и она позволяет обслуживать несколько серверов ресурсов для аутентификации с использованием spring-security-jwt.Моя проблема заключается в том, что во время аутентификации мне нужно загрузить роли пользователя, но специфичные для clientId.Например: если у user1 есть роли ROLE_A, ROLE_B для client1 и ROLE_C, ROLE_D для client2, то когда пользователь входит в систему, используя client1 или client2, он может видеть все четыре роли, т.е.ROLE_A, ROLE_B, ROLE_C, ROLE_D, потому что я получаю роли на основе имени пользователя.Если мне нужно иметь роль на основе клиента, тогда мне нужен clientId.К вашему сведению, я использую поток кода авторизации для аутентификации.Я видел подобный вопрос, но он основан на предоставлении пароля, но я пытаюсь использовать поток кода авторизации, и это решение не работает для меня.Вопрос о предоставлении пароля ссылка Ниже мой код, где мне нужен clientId MyAuthenticationProvider.java
@Override
public Authentication authenticate(final Authentication authentication) throws AuthenticationException {
String userName = ((String) authentication.getPrincipal()).toLowerCase();
String password = (String) authentication.getCredentials();
String clientId = ? // how to get it
....
}
}
MyUserDetailsService.java
@Override
public UserDetails loadUserByUsername(String username) {
String clientId = ? // how to get it
....
}
}