0

我正在使用 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>
4

0 回答 0