Как обновить Spring Security OAuth2Authentication?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как обновить Spring Security OAuth2Authentication?

Сообщение Anonymous »

На самом деле я обновляю Java-версию своего проекта с jdk11 до jdk17.
Для этого я также обновляю некоторые зависимости, например:
rg.springframework.boot из 2.1.6.RELEASE до версии 2.7.18
При этом были обновлены следующие зависимости (до версии 5.7.11):

Код: Выделить всё

        
org.springframework.security
spring-security-oauth2-client


org.springframework.security
spring-security-oauth2-resource-server

Моя основная проблема заключается в том, что когда я пытаюсь скомпилировать проект, не обнаруживаются следующие классы: OAuth2Authentication и OAuth2AuthenticationDetails, но я понятия не имею, как мне следует изменить код, чтобы решить проблему. .

Код: Выделить всё

public static AuthenticatePerson getPerson(){
String token = null;
var person = new AuthenticatePerson();

Authentication principal = SecurityContextHolder.getContext()
.getAuthentication();
if (principal instanceof OAuth2Authentication){
OAuth2Authentication authentication = (OAuth2Authentication) principal;
Object details = authentication.getDetails();

if (details instanceof OAuth2AuthenticationDetails) {
OAuth2AuthenticationDetails oauthsDetails = (OAuth2AuthenticationDetails) details;
token = oauthsDetails.getTokenValue();
}
}

try {
DecodedJWT jwt = JWT.decode(token);
person.setName(jwt.getClaims().get("name").asString());
person.setEmail(jwt.getClaims().get("mail").asString());
person.setGroupe(jwt.getClaims().get("Group").asString());

} catch (JWTDecodeException exception){
//Invalid token
}

return  person;
}
Я пытался использовать следующее, но все равно получаю ошибки:

Код: Выделить всё

        if (principal instanceof OAuth2AuthenticationToken){
OAuth2AuthenticationToken authenticationToken = (OAuth2AuthenticationToken) principal;
token = authenticationToken.getAuthorizedClientRegistrationId();
}

Код: Выделить всё

        if (principal instanceof JwtAuthenticationToken) {
JwtAuthenticationToken jwtAuth = (JwtAuthenticationToken) principal;
token = jwtAuth.getToken().getTokenValue();
}
Как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/791 ... entication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»