我正在使用 Keycloak-admin-client 并希望通过按 id 搜索用户来获取用户信息。
@Service
public class KeycloakService {
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl("<Domain>/auth/")
.grantType(OAuth2Constants.PASSWORD)
.realm("Master")
.clientId("admin-cli")
.username("Admin")
.password(<Password>)
.resteasyClient(
new ResteasyClientBuilder()
.connectionPoolSize(10).build()
).build();
public void getClientById(String id){
RealmResource realmResource = keycloak.realm(<Realm name>);
UsersResource users = realmResource.users();
UserResource user = users.get("145a251c-8e99-426c-b3ed-068c2478efff");
System.out.println(user.toRepresentation().getEmail());
}
}
使用上面的代码,我总是得到最后一行的超时。toRepresentation()
调用(所以我猜测实际的 Api 调用)会产生超时。
java.net.ConnectException: Operation timed out (Connection timed out)
我认为两个重要的进口是:
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>12.0.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0</version>
</dependency>