keycloak


部署和使用

keycloak是一套基於autho2.0開源授權系統。

第一步:下載keycloak安裝包 https://www.keycloak.org/downloads

第二步:解壓安裝包

第三步:運行 windows下運行bin下的standalone.bat文件 linux下運行standalone.sh文件 

可配置運行端口和監聽host 命令(standalone.bat -Djboss.socket.binding.port-offset=100  -Djboss.bind.address=192.168.112.172)

-Djboss.socket.binding.port-offset=100 表示默認端口8080的偏移量 為8180

 -Djboss.bind.address=172.168.112.172 表示的監聽host默認127.0.0.1

第四步:更換數據庫為pgsql,默認使用h2NoSql數據庫。

下載pgsql驅動包:https://jdbc.postgresql.org/download.html

導入pgsql驅動包:在keycloak的modules\system\layers\base\org路徑下創建\postgresql\main文件夾,將下載的驅動包放到main文件下,在main文件下創建文件module.xml的文件,編輯內容如下:

<?xml version="1.0" encoding="UTF-8"?>

<module xmlns="urn:jboss:module:1.5" name="org.postgresql">
    <resources>
        <resource-root path="postgresql-42.2.8.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>
其中name是pgsql驅動包名,resource-root是驅動板文件名
 修改keycloak-11.0.3\standalone\configuration\standalone.xml
查找 drivers 標簽增加pgsql驅動
 <driver name="postgresql" module="org.postgresql">
  <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
module為之前module.xml中的name,此處的name為driver的名稱
此處注意:xa-datasource-class的值會隨着jdbc版本變化而不同,可從jar包中尋找到正確的路徑。
向上查找標簽 datasource
注釋掉名稱為keycloakDS的數據源,並加上pgsql的:
<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
  <connection-url>jdbc:postgresql://localhost:5432/postgres</connection-url>
  <driver>postgresql</driver>
  <pool>
    <max-pool-size>20</max-pool-size>
  </pool>
  <security>
    <user-name>postgres</user-name>
    <password>root</password>
  </security>
</datasource>
此處注意:需要手工建立keycloak庫。啟動keycloak即可。在pgsql中可查看到創建數據庫和表。
 
開發使用的接口文檔:
此處為授權碼方式的接口:
獲取code:"/protocol/openid-connect/auth"  [get]
獲取token和刷新token:"/protocol/openid-connect/token"  [post]     
獲取用戶信息:"/protocol/openid-connect/userinfo"    [get]
域名/auth/realms/realms的值拼接上述的地址既可完成對應的請求 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM