UAA 是 User Account and Authentication 首字母的縮寫, 是 CloudFoundry(一個 PaaS 服務供應商)開源的用戶帳號和身份認證服務,可用于搭建 OAuth2 認證授權服務器。
打開 uaa github 頁面,按照文檔說明,檢出源碼,默認分支為 develop,因為 develop 分支內容會不斷更新,內容更新后可能運行效果與文檔描述不符,所以這里使用最近的一個固定版本 74.21.0。
服務會使用 8080 和 8081 端口,如果這些端口已被使用會導致啟動失敗。啟動成功后,服務處于監聽狀態:
Figure 1. 本地啟動項目
如果啟動失敗,可以通過命令 sudo lsof | grep uaa.log
找到日志文件:
Figure 2. 定位日志文件
然后查看日志信息: tail -100f /private/var/folders/1s/ly4n5ft11r19j6859j20mb380000gn/T/uaa-8080/logs/uaa.log
服務停止后,8080 端口會釋放,但 8081 端口不會,需要手動 kill 8081 端口,才能再次啟動服務。
默認使用 hsqldb 內存數據庫,你可以切換成 postgresql 或者 mysql。
打開配置文件 uaa/src/main/resources/uaa.yml:
啟用 MYSQL profile:
Figure 3. 啟用 MYSQL 配置
修改 MYSQL 配置:
Figure 4. 修改 MYSQL 配置
在本地創建 uaa 數據庫: create database uaa
。
使用 MYSQL8 會有問題,這是一個已知的 BUG 940,因為 UAA 使用的 groups 表在 MYSQL8 中成了關鍵字,目前官方尚未修復此 BUG。筆者本機之前使用的 8.0 版本,測試無法使用,重新通過 docker 裝了一個 5.7.30 版本才可以。
UAA 默認使用 HMAC256 加密算法生成簽名,簽名 key 值默認為:tokenKey。連接 UAA 認證服務器的資源服務器也需要用此簽名 key 校驗 token 值。在使用 org.springframework.security:spring-security-oauth2-jose:5.3.2.RELEASE
搭建資源服務器時,Spring 默認使用 client_secret 的值作為簽名 key,所以兩者不兼容。
為了統一兩者,改成 RSA 簽名方式,打開 scripts/cargo/uaa.yml 文件,修改 jwt.token.signing-key :
Figure 5. 修改簽名 Key
Figure 6. 修改簽名 Key
HMAC256 是對稱加密,所有只有一個值。RSA 是非對稱加密,所以需要配置 2 個值,jwt.token.signing-key 配置私鑰,jwt.token.verification-key 配置公鑰。
通過 ./gradlew run
啟動服務,不能在后臺運行,也不能部署到服務器,現修改配置將其部署到 Tomcat,筆者這里使用的版本是 Tomcat 9.0.36。
拷貝 scripts/cargo/log4j2.properties 文件至 uaa/src/main/resources 目錄下。
拷貝 scripts/cargo/uaa.yml 的內容至 uaa/src/main/resources/uaa.yml 中:
直接把拷貝的內容放在末尾,然后通過 --- 分割。
部署 uaa/build/libs/cloudfoundry-identity-uaa-0.0.0.war 到 Tomcat 實例:
先在 IDEA 內運行檢查下是否存在問題,然后可以直接在 tomcat 目錄下通過命令啟動:
這是一個已知的問題 #805。 當你在資源服務器中將 issuer 配置為 http://localhost:8080/uaa 時,通過 http://localhost:8080/uaa/.well-known/openid-configuration 得到的 JSON 數據中 issuer 的值為 http://localhost:8080/uaa/oauth/token ,如此一來兩個 issuer 的值就不同了,在使用org.springframework.security:spring-security-oauth2-jose:5.3.2.RELEASE
搭建資源服務器時,Spring 會校驗這兩個值必須相等。你需要將 issuer 配置為 http://localhost:8080/uaa/oauth/token ,通過 http://localhost:8080/uaa/oauth/token/.well-known/openid-configuration 獲取配置信息也是符合標準規范的。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
QQ空間認證申請快速通過方法?1.在電腦端打開空間網站,輸入賬號密碼,登錄。點擊個人空間界面右上角的【設置】,然后點擊【修改信息】。如何開啟QQ空間實名認證?打開空間實名認證的步驟如下:1.在電腦上打開自己的空間,點擊 "設置 "圖標,然后單擊 "修改信息進入下一頁。2.找到 "實名認證 "鏈接在 "個人信息 "點擊它,然后輸入 "實名認證 "設置界面。3.填寫 "基本信息 ":基本信息與 "朋友...
ipadmini怎么越獄升級ios10?IPad mini越獄升級iOS10方法:IOS 10越獄方法介紹:1.將iPad設備連接到PP助手,點擊【一鍵越獄】按鈕。2.點擊彈出窗口中的【安裝越獄助手】按鈕。3.輸入驗證碼后安裝。 10越獄助手安裝成功后,請點擊【下一步】繼續操作。5.請根據教程完成設置-常規-配置文件和設備管理中的應用程序信任設置。6.打開【越獄助手】APP。7.點擊【立即越獄】,...
windows server自帶的backup怎么恢復?1. 安裝windows server備份服務。2使用Windows Server Backup進行本地一次性備份。選擇一次性備份后,將啟動一次性備份向導,并在備份向導中選擇備份方法。三。除特殊要求外,不建議備份整個服務器。首先,不建議備份不必要的數據。其次,備份過程相當緩慢。因此,您可以選擇自定義備份。4在選擇要備份的項目頁面中,選擇添加項...