부자 되기 위한 블로그, 머니킹

기존 새로운  quarkus 기반 keycloak의 경우 custom 하는데 많은 문제를 겪어 이전의 wildfly 기반 keycloak을 사용하기로 마음먹었습니다. quarkus의 경우 conf 파일을 통해 손쉽게 외부 DB를 연결할 수 있었지만 그 외에는 새롭게 개척해서 공부해야 하는 부분때문에 힘든것은 어쩔 수 없네요. 이번 포스팅에서는 wildfly 버전 외부 DB 연동 방법에 대해서 알아보겠습니다.

 

Managemene 사용자 생성

저도 외부 DB 연동하면서 알았는데 Management 계정을 따로 만들 수 있더라고요. 기존의 경우에는 일일히 소스코드를 고치며 외부 DB를 연동해야 했지만 현재는 손쉽게 management 사용자 계정을 통해 손쉽게 연동할 수 있습니다.

 

/bin 파일로 이동후 다음 명령어를 입력해줍니다.

sh add-user.sh

그리고 ManageMent User를 선택해주고 id 및 password를 입력합니다.

 

http://localhost:5010/console

keycloak 주소 뒤에 /console path가 추가되면 management 페이지로 갈 수 있습니다.

 

외부 db 연동 전 연동하고자 하는 db의 driver를 위치시켜야 합니다.

 

위와 같이 /mariadb/main에 드라이버와 module.xml을 생성합니다.

 

<module xmlns="urn:jboss:module:1.3" name="org.mariadb">

    <resources>
        <!-- 실제 driver jar 파일의 이름 -->
        <resource-root path="mariadb-java-client-2.7.3.jar"/>
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>

</module>

 

module.xml에는 다음과 같이 입력해줍니다.

 

 

외부 DB 연동 (Management Page)

위와 같이 management 페이지에서 들어가서 Configuration 에 DataSource&JDBC Driver에 들어갑니다. 

 

1. 외부 DB Driver 추가

2. DataSource 추가

 

위와 같이 생성한 mariadb 주소를 입력하여 datasource를 생성후 이전에 있던 datasource들을 전부 삭제합니다.

 

이후에 standalone/standalne.xml 에 있는 모든 JIDI 정보를 생성한 JIDI 이름으로 교체합니다.

 

default의 경우도 해당 datasource로 바꿔줘야 오류가 안나는 것 같습니다.

 

 

./standalone.sh -Djboss.http.port=5010

다시 서버를 실행하여 들어가면 mariadb가 연동된 모습을 알 수 있습니다.

 

참조

https://www.janua.fr/how-to-install-keycloak-with-mariadb/