Миграция данных пользователей социального поставщика в схему keycloak [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Миграция данных пользователей социального поставщика в схему keycloak [закрыто]

Сообщение Anonymous »

Я сталкиваюсь с Challege, когда мигрируют, существуют пользовательские данные Google в KeyCloak. В настоящее время я работаю над проектом, включающим архитектуру микросервиса, и KeyCloak служит моим поставщиком аутентификации OpenID Connect (OIDC). И теперь я стремлюсь централизовать источник пользовательских данных путем переноса всех пользовательских данных в схему MySQL по умолчанию, сгенерированную KeyCloak. Похоже, нет простого способа отметить пользователя как пользователя Google в KeyCloak. Например, если я перемещаю пользовательские данные, которые ранее зарегистрированы в Login Google с помощью xxxx@google.com через API keycloak Rest, а затем пользователь пытается вход в Google, KeyCloak воспринимает его как нового пользователя и, следовательно, отображает ошибку
для дубликата, найденного. Использовать keyCloak "Создать пользователь" REST API. Это позволяет мне публиковать информацию пользователя, включая идентификаторы, в keycloak.w, но, кажется, не относится к пользователям входа в систему Google. /> Для контекста моя оригинальная база данных хранит электронную почту, имя пользователя и поставщик (Self или Google), и GoogleID не хранится.@NoArgsConstructor
@Data
@Document(collection = "User")
@AllArgsConstructor
@Builder
public class User implements UserDetails {
@Id
private String id;

@Field
private String auth_user_id;

@Field
private String encrypted_pwd;

@Field
private String username;

@Field
private String email;

@Field
private String region;

@Field
private LanguageEnum default_language=LanguageEnum.zh_HK;

@Field
private List prefer_cate=List.of();

@Field
private List prefer_grade=List.of();

@Field
private List prefer_tag=List.of();

@Field
private List role=List.of(RoleEnum.USER);

@Field
private IdentityEnum identity;

@Field
private String otp;

@Field
private boolean isEnable=false;

@Field
private LocalDateTime otpGeneratedTime;

@Field
private Authprovider provider;

@Field
private String profileUrl;

@Field
private String contact;

@Field
private String address;

@Field
private LocalDateTime created_at;

@Field
private LocalDateTime updated_at;
< /code>
Пример пользовательских данных как формат JSON в Mongo: < /p>
{
"_id": {
"$oid": "xxxxxxxx"
},
"username": "xxxxx",
"email": "xxxx@google.com",
"default_language": "**",
"prefer_cate": [],
"prefer_grade": [],
"prefer_tag": [],
"role": [
"USER"
],
"otp": "***",
"isEnable": true,
"otpGeneratedTime": {
"$date": "2024-06-13T14:18:05.548Z"
},
"provider": "google",
"profileUrl": "****",
"subscription_plan": "FREE",

}
< /code>
Учитывая, что в прошлом я использовал поле «поставщик», чтобы идентифицировать пользователя как логин Google и самостоятельный регистр. Заранее спасибо за помощь.

Подробнее здесь: https://stackoverflow.com/questions/795 ... oak-schema
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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