Проблема:
Когда я пытаюсь зарегистрировать пользователя, отправив запрос POST в конечную точку/регистрации с помощью полезной нагрузки, подобной этой:
{
"username": "asas",
"email": "asas@gmail.com",
"password": "asas"
}
< /code>
Система сбой, и зарегистрирована следующая ошибка: < /p>
2025-02-05T15:36:28.299+07:00 INFO 42339 --- [auth-service] [nio-8081-exec-1] o.f.user.controller.AuthController : Received registration request for username: asas
2025-02-05T15:36:28.299+07:00 INFO 42339 --- [auth-service] [nio-8081-exec-1] o.f.user.listener.AuthEventListener : Processing user registration for username: asas
2025-02-05T15:36:28.300+07:00 ERROR 42339 --- [auth-service] [nio-8081-exec-1] o.f.user.listener.AuthEventListener : Error registering user in Keycloak: username required
< /code>
Что я пробовал: < /strong> < /p>
Проверьте полезную нагрузку - имя пользователя, электронная почта и пароль правильно передается в теле запроса. /> Проверьте настройку API Admin API KeyCloak - все, кажется, настроено правильно с точки зрения создания пользователей, ролей и аутентификации. < /li>
< /ul>
> Code
configuration:
keycloak:
realm:
auth-server-url: http://localhost:9090/
resource:
credentials:
client-id:
secret:
use-resource-role-mappings: true
< /code>
authcontroller: < /p>
@RestController
@RequestMapping("/api/v1/auth")
@RequiredArgsConstructor
public class AuthController {
private final AuthEventListener userEventListener;
private static final Logger logger = LoggerFactory.getLogger(AuthController.class);
@PostMapping("/register")
public ResponseEntity register(@RequestBody UserRegisteredEvent event) {
logger.info("Received registration request for username: {}", event.getUsername());
return userEventListener.handleUserRegistration(event);
}
@PostMapping("/login")
public ResponseEntity login(@RequestBody UserLoginEvent event) {
return userEventListener.handleUserLogin(event);
}
}
< /code>
AutheventListener: < /p>
@Service
@RequiredArgsConstructor
public class AuthEventListener {
private final KafkaTemplate userRegisteredTemplate;
private final AuthService authService;
private static final Logger logger = Logger.getLogger(AuthEventListener.class.getName());
@KafkaListener(topics = "user-registration", groupId = "auth-service")
public ResponseEntity handleUserRegistration(UserRegisteredEvent event) {
logger.info("Processing user registration for username: " + event.getUsername());
try {
authService.registerUser(event.getUsername(), event.getEmail(), event.getPassword());
userRegisteredTemplate.send("user-registered", event);
logger.info("User successfully registered in Keycloak: " + event.getUsername());
} catch (Exception e) {
logger.severe("Error registering user in Keycloak: " + e.getMessage());
}
return ResponseEntity.ok().build();
}
}
< /code>
Authservice: < /p>
@Service
@RequiredArgsConstructor
public class AuthService {
@Value("${keycloak.auth-server-url}")
private String keycloakAuthServerUrl;
@Value("${keycloak.realm}")
private String keycloakRealm;
@Value("${keycloak.credentials.client-id}")
private String keycloakClientId;
@Value("${keycloak.credentials.secret}")
private String keycloakClientSecret;
private static final Logger logger = Logger.getLogger(AuthService.class.getName());
private Keycloak getAdminKeycloakInstance() {
return KeycloakBuilder.builder()
.serverUrl(keycloakAuthServerUrl)
.realm(keycloakRealm)
.clientId(keycloakClientId)
.clientSecret(keycloakClientSecret)
.build();
}
public void registerUser(String username, String email, String password) {
Keycloak keycloak = getAdminKeycloakInstance();
RealmResource realmResource = keycloak.realm(keycloakRealm);
UsersResource usersResource = realmResource.users();
UserRepresentation user = new UserRepresentation();
user.setUsername(username);
user.setEmail(email);
user.setEnabled(true);
Response response = usersResource.create(user);
if (response.getStatus() != 201) {
throw new RuntimeException("Failed to create user in Keycloak: " + response.getStatusInfo());
}
String userId = response.getLocation().getPath().replaceAll(".*/([^/]+)$", "$1");
CredentialRepresentation credential = new CredentialRepresentation();
credential.setTemporary(false);
credential.setType(CredentialRepresentation.PASSWORD);
credential.setValue(password);
keycloak.realm(keycloakRealm).users().get(userId).resetPassword(credential);
RoleRepresentation userRole = realmResource.roles().get("user").toRepresentation();
keycloak.realm(keycloakRealm).users().get(userId)
.roles().realmLevel().add(Collections.singletonList(userRole));
logger.info("User successfully registered in Keycloak: " + username);
}
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... loak-admin
Ошибка регистрации пользователя в KeyCloak: Имя пользователя требуется при использовании API клиента admin Admin KeyCloa ⇐ JAVA
Программисты JAVA общаются здесь
1738745535
Anonymous
[b] Проблема: [/b]
Когда я пытаюсь зарегистрировать пользователя, отправив запрос POST в конечную точку/регистрации с помощью полезной нагрузки, подобной этой:
{
"username": "asas",
"email": "asas@gmail.com",
"password": "asas"
}
< /code>
Система сбой, и зарегистрирована следующая ошибка: < /p>
2025-02-05T15:36:28.299+07:00 INFO 42339 --- [auth-service] [nio-8081-exec-1] o.f.user.controller.AuthController : Received registration request for username: asas
2025-02-05T15:36:28.299+07:00 INFO 42339 --- [auth-service] [nio-8081-exec-1] o.f.user.listener.AuthEventListener : Processing user registration for username: asas
2025-02-05T15:36:28.300+07:00 ERROR 42339 --- [auth-service] [nio-8081-exec-1] o.f.user.listener.AuthEventListener : Error registering user in Keycloak: username required
< /code>
[b] Что я пробовал: < /strong> < /p>
Проверьте полезную нагрузку - имя пользователя, электронная почта и пароль правильно передается в теле запроса. /> Проверьте настройку API Admin API KeyCloak - все, кажется, настроено правильно с точки зрения создания пользователей, ролей и аутентификации. < /li>
< /ul>
> Code [/b]
[b] configuration: [/b]
keycloak:
realm:
auth-server-url: http://localhost:9090/
resource:
credentials:
client-id:
secret:
use-resource-role-mappings: true
< /code>
authcontroller: < /p>
@RestController
@RequestMapping("/api/v1/auth")
@RequiredArgsConstructor
public class AuthController {
private final AuthEventListener userEventListener;
private static final Logger logger = LoggerFactory.getLogger(AuthController.class);
@PostMapping("/register")
public ResponseEntity register(@RequestBody UserRegisteredEvent event) {
logger.info("Received registration request for username: {}", event.getUsername());
return userEventListener.handleUserRegistration(event);
}
@PostMapping("/login")
public ResponseEntity login(@RequestBody UserLoginEvent event) {
return userEventListener.handleUserLogin(event);
}
}
< /code>
AutheventListener: < /p>
@Service
@RequiredArgsConstructor
public class AuthEventListener {
private final KafkaTemplate userRegisteredTemplate;
private final AuthService authService;
private static final Logger logger = Logger.getLogger(AuthEventListener.class.getName());
@KafkaListener(topics = "user-registration", groupId = "auth-service")
public ResponseEntity handleUserRegistration(UserRegisteredEvent event) {
logger.info("Processing user registration for username: " + event.getUsername());
try {
authService.registerUser(event.getUsername(), event.getEmail(), event.getPassword());
userRegisteredTemplate.send("user-registered", event);
logger.info("User successfully registered in Keycloak: " + event.getUsername());
} catch (Exception e) {
logger.severe("Error registering user in Keycloak: " + e.getMessage());
}
return ResponseEntity.ok().build();
}
}
< /code>
Authservice: < /p>
@Service
@RequiredArgsConstructor
public class AuthService {
@Value("${keycloak.auth-server-url}")
private String keycloakAuthServerUrl;
@Value("${keycloak.realm}")
private String keycloakRealm;
@Value("${keycloak.credentials.client-id}")
private String keycloakClientId;
@Value("${keycloak.credentials.secret}")
private String keycloakClientSecret;
private static final Logger logger = Logger.getLogger(AuthService.class.getName());
private Keycloak getAdminKeycloakInstance() {
return KeycloakBuilder.builder()
.serverUrl(keycloakAuthServerUrl)
.realm(keycloakRealm)
.clientId(keycloakClientId)
.clientSecret(keycloakClientSecret)
.build();
}
public void registerUser(String username, String email, String password) {
Keycloak keycloak = getAdminKeycloakInstance();
RealmResource realmResource = keycloak.realm(keycloakRealm);
UsersResource usersResource = realmResource.users();
UserRepresentation user = new UserRepresentation();
user.setUsername(username);
user.setEmail(email);
user.setEnabled(true);
Response response = usersResource.create(user);
if (response.getStatus() != 201) {
throw new RuntimeException("Failed to create user in Keycloak: " + response.getStatusInfo());
}
String userId = response.getLocation().getPath().replaceAll(".*/([^/]+)$", "$1");
CredentialRepresentation credential = new CredentialRepresentation();
credential.setTemporary(false);
credential.setType(CredentialRepresentation.PASSWORD);
credential.setValue(password);
keycloak.realm(keycloakRealm).users().get(userId).resetPassword(credential);
RoleRepresentation userRole = realmResource.roles().get("user").toRepresentation();
keycloak.realm(keycloakRealm).users().get(userId)
.roles().realmLevel().add(Collections.singletonList(userRole));
logger.info("User successfully registered in Keycloak: " + username);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79414148/error-registering-user-in-keycloak-username-required-while-using-keycloak-admin[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия