Стандартный подход / обходное решение / решение заключается в добавлении объекта class
в конструктор (ы), например:
public class Foo<T> {
private Class<T> type;
public Foo(Class<T> type) {
this.type = type;
}
public Class<T> getType() {
return type;
}
public T newInstance() {
return type.newInstance();
}
}
Способ Spring Lemon заменяет пользовательские сервисы OAuth2 и OpenID (см. весенние документы безопасности ). Подробнее см. LemonOAuth2UserService
и LemonOidcUserService
. Для безгражданства он передает клиенту короткоживущий токен JWT как параметр для targetUrl, как вы можете видеть в своем классе OAuth2AuthenticationSuccessHandler
. Он использует некоторый механизм cookie для выполнения всего этого безстоящим образом, что может быть дополнительно понято, посмотрев на его HttpCookieOAuth2AuthorizationRequestRepository
и то, как он настроен.
Вот статья, объясняющая это более подробно: https: / /.