IT/Java

Java Client 로 Keycloak API 사용하기

캥거루 2022. 12. 20. 11:14
728x90
반응형

Java Client 로 Keycloak API 사용하기

Keycloak 서버개발자 가이드문서를 참고하여 만든 자료입니다.

Keycloak API 접근권한 할당하기

위 사진을 참고하여 API 요청을 위한 관리자 계정에 필요한 권한을 할당해준다. (맨 아래 참고자료 첨부)

build.gradle

implementation group: 'org.keycloak', name: 'keycloak-admin-client', version: '17.0.1'  
// Keycloak-admin-client 의존성인 resteasy-client 4.5.6 버전까지 취약점이 있어 아래 4개 의존성을 오버라이딩  
한다.  
implementation group: 'org.jboss.resteasy', name: 'resteasy-client', version: '4.5.7.Final'  
implementation group: 'org.jboss.resteasy', name: 'resteasy-multipart-provider', version: '4.5.7.Final'  
implementation group: 'org.jboss.resteasy', name: 'resteasy-jackson2-provider', version: '4.5.7.Final'  
implementation group: 'org.jboss.resteasy', name: 'resteasy-jaxb-provider', version: '4.5.7.Final'  

Java Client

// Keycloak 인스턴스 조회  
private Keycloak getKeycloakInstance(){  
    Keycloak keycloak = null;  
    try {  
        keycloak = Keycloak.getInstance(  
        serverUrl, // ex: http:localhost:8080/auth  
        realm,  
        username, // realm-management 의 role 이 부여되어 있는 계정  
        password,  
        clientId);  
        return keycloak;  
    } catch (Exception e) {  
      log.error("Failed to create keycloak instance.");  
      if (keycloak = null && keycloak.isClosed()){  
        keycloak.close();  
        log.info("Closed the keycloak instance.");  
      }  
      throw e;  
    }  
}  

위 코드에서 Keycloak 인스턴스를 획득한 후 해당 객체를 디버깅해보면 원하는 API 정보를 확인해볼 수 있다. 아직 공식 가이드문서에서는 Java API 에 대한 정의를 찾지 못하여(URI 로 구성된 REST API 에 대한 정의는 아래 참고자료에 있다.) 디버깅을 해가며 API 를 찾아야했다.

참고자료

728x90
반응형

'IT > Java' 카테고리의 다른 글

Java 직렬화(Serialization) 와 역직렬화(Deserialization)  (0) 2021.07.14