<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          spring-oauth-serverSpring與Oauth2整合示例

          聯(lián)合創(chuàng)作 · 2023-09-23 21:39

          spring-oauth-server

          Spring與Oauth2的整合示例

          項(xiàng)目用Maven管理

          使用的技術(shù)與版本號(hào)

          1. Spring (3.1.1.RELEASE)

          2. Spring Security (3.1.0.RELEASE)

          3. MyBatis (3.2.1)

          4. spring-security-oauth2 (1.0.5.RELEASE)


          客戶端demo項(xiàng)目請(qǐng)?jiān)L問(wèn) spring-oauth-client


          如何使用?

          1. 項(xiàng)目是Maven管理的, 需要本地安裝maven(開(kāi)發(fā)用的maven版本號(hào)為3.1.0), 還有MySql(開(kāi)發(fā)用的mysql版本號(hào)為5.5)

          2. 下載(或clone)項(xiàng)目到本地

          3. 創(chuàng)建MySQL數(shù)據(jù)庫(kù)(如數(shù)據(jù)庫(kù)名oauth2), 并運(yùn)行相應(yīng)的SQL腳本(腳本文件位于others/database目錄),
              運(yùn)行腳本的順序: initial_db.ddl -> oauth.ddl -> initial_data.ddl

          4. 修改spring-oauth-server.properties(位于src/resources目錄)中的數(shù)據(jù)庫(kù)連接信息(包括username, password等)

          5. 將本地項(xiàng)目導(dǎo)入到IDE(如Intellij IDEA)中,配置Tomcat(或類似的servelt運(yùn)行服務(wù)器), 并啟動(dòng)Tomcat(默認(rèn)端口為8080)
              另: 也可通過(guò)maven package命令將項(xiàng)目編譯為war文件(spring-oauth-server.war),         將war放在Tomcat中并啟動(dòng)(注意: 這種方式需要將spring-oauth-server.properties加入到classpath中并正確配置數(shù)據(jù)庫(kù)連接信息).

          6. 參考oauth_test.txt(位于others目錄)的內(nèi)容并測(cè)試之(也可在瀏覽器中訪問(wèn)相應(yīng)的地址,如: http://localhost:8080/spring-oauth-server).


          幫助與改進(jìn)

          1. 與該項(xiàng)目相關(guān)的博客請(qǐng)?jiān)L問(wèn) http://blog.csdn.net/monkeyking1987/article/details/16828059

          2. 如果在使用過(guò)程中遇到特殊的問(wèn)題(如:如何將oauth_code存入數(shù)據(jù)庫(kù)),請(qǐng)?jiān)L問(wèn)項(xiàng)目的 Wiki附件.
            我會(huì)把大家反饋的問(wèn)題解決辦法添加在這里.
            若在這兩個(gè)地方?jīng)]有找到解決辦法的, 歡迎發(fā)郵件到[email protected]一起討論.

          3. 如果在使用項(xiàng)目的過(guò)程中發(fā)現(xiàn)任何的BUG或者更好的提議, 建議將其提交到項(xiàng)目的 Issues 中, 我會(huì)一直關(guān)注并不斷改進(jìn)項(xiàng)目.


          功能擴(kuò)展

          1. oauth_code存入數(shù)據(jù)庫(kù)的配置,  請(qǐng)下載文件 oauth_code存入數(shù)據(jù)庫(kù)的配置.jpg

          2. 改變token過(guò)期的時(shí)間的配置, 請(qǐng)下載文件改變token過(guò)期的時(shí)間的配置.jpg

          3. 自定義 grant_type, 默認(rèn)情況支持的grant_type包括 [password,authorization_code,refresh_token,implicit], 若不需要其中的某些grant_type,        則可以修改 oauth_client_details 表中的 authorized_grant_types 字段的值;        
                   若想把整個(gè)Oauth服務(wù)修改來(lái)只支持某些grant_type, 請(qǐng)修改 security.xml文件中的        oauth2:authorization-server 中的內(nèi)容,將對(duì)應(yīng)的 grant_type 注釋或刪掉即可

          4. 如何刷新access_token(refresh_token), 在通過(guò)客戶端(如移動(dòng)設(shè)備)登錄成功后返回的數(shù)據(jù)如下            

            {"access_token":"3420d0e0-ed77-45e1-8370-2b55af0a62e8","token_type":"bearer","refresh_token":"b36f4978-a172-4aa8-af89-60f58abe3ba1","expires_in":43199,"scope":"read write"}

                       
                       若需要刷新獲取新的token(一般在 expires_in 有效期時(shí)間快到時(shí)), 請(qǐng)求的URL類似如下            
                       

            http://localhost:8080/oauth/token?client_id=mobile-client&client_secret=mobile&grant_type=refresh_token&refresh_token=b36f4978-a172-4aa8-af89-60f58abe3ba1

                       
                       注意: refresh_token 參數(shù)值必須與登錄成功后獲取的 refresh_token 一致, 且grant_type = refresh_token            
                       另: 刷新token 需要 ClientDetails 支持 refresh_token 類型的 grant_type (默認(rèn)是支持的)


          更多資源

          以下是在學(xué)習(xí)工作中收集的更多關(guān)于Oauth的資源,對(duì)深入理解與運(yùn)用Oauth有幫助

          瀏覽 20
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  爱爱综合视频 | 丁香五月婷婷在线 | 亚洲AV成人电影 | 色婷婷综合网站 | 日韩精品在线视频 |