java heroku_使用Spring Boot和Heroku在20分钟内完成Java的单点登录
java heroku
建筑物身份管理,包括身份驗證和授權? 嘗試Stormpath! 我們的REST API和強大的Java SDK支持可以消除您的安全風險,并且可以在幾分鐘內實現。 注冊 ,再也不會建立auth了!
大規模更新
我最初為本文撰寫的代碼更適合非Spring Boot環境。
Stormpath為其IDSite服務現有的Spring Boot集成使為其編寫代碼變得輕而易舉 。 它利用了Spring Boot必須提供的所有自動配置。
如果您是新手,請繼續閱讀。 如果您以前閱讀過它,請跳至“ 更新Spring Boot Webapp”部分。 您會看到RestrictedController從40行減少到15行,從4種方法減少到1行。
主要事件–輕松單點登錄
我喜歡Java如何保持自我創新以保持最新和相關性(我可以聽到我所有的Node.js和Ruby朋友吟)。 支持Java的生態系統也在跟上新的發展。 如今,與使用Python或Node.js一樣快地構建,測試和部署豐富的Java Web應用程序一樣容易(如今越來越難了)。
其中之一就是Spring Boot,它使在幾分鐘內構建和啟動Java Webapp成為現實。 Heroku對Java支持的關注也加快了步伐。
最后,Stormpath意味著開發人員不必構建身份驗證和授權工作流。 Stormpath的身份API和單點登錄功能( 通過IDSite )提供了開箱即用的帳戶注冊,登錄,電子郵件工作流以及跨應用程序的單點登錄。 這些流程包括默認表單和視圖,所有這些都是可定制的。
在這篇文章中,我們將把所有這些放在一起,并在20分鐘內在您的應用程序中獲得單點登錄的額外好處。
繼續閱讀-滴答滴答!
這是本教程所需的先決條件:
- Gradle2.x
- 在Mac上: brew install gradle
- Heroku
- 創建一個Heroku帳戶
- 一個Stormpath帳戶(我們還將在下面介紹)
注意 :您可以輕松使用Maven 。 如果您更喜歡此構建工具,則本文附帶的源代碼包括pom.xml 。
為了使其變得超級容易,我們在每個示例中都添加了一個方便的Heroku部署按鈕,因此您可以立即查看它的運行情況。 如果您花了超過20分鐘的時間,請在評論中告訴我們是什么阻止了您。 我們喜歡反饋。
啟動Spring Boot – 5分鐘教程
注意 :如果您已經對Spring Boot有所了解,則可能需要跳到下一部分。 在那里–我剛剛為您節省了5分鐘。 別客氣。
本節使用github存儲庫中的SpringBootBasic標簽。
Spring Boot使您能夠啟動一個功能全面的Java Web應用程序,就像啟動一個簡單的Java應用程序一樣。 它具有main方法和所有內容。 例如, @SpringBootlApplication注釋執行@Configuration @EnableAutoConfiguration , @ComponentScan @EnableAutoConfiguration和@ComponentScan注釋(具有默認屬性)在@EnableAutoConfiguration Spring應用程序中所做的所有操作。
令Spring Boot如此出色且如此輕松工作的是Starter軟件包,這些軟件包增加了功能,包括默認配置。 我們將在Stormpath Spring Boot Thymeleaf Starter的所有Stormpath功能中進一步使用它們來創建新用戶,登錄和更改密碼。 您要做的只是在build.gradle或pom.xml文件中引用一個jar。
對于我們的基本示例,我們將包括核心Spring Boot Starter Web和Thymeleaf Spring Boot Starter。 Thymeleaf是現代HTML 5 Java模板引擎。
這是我們的build.gradle :
buildscript {repositories {mavenCentral()}dependencies {classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.5.RELEASE")} }apply plugin: 'java' apply plugin: 'maven' apply plugin: 'spring-boot'group = 'com.stormpath' version = '0.1.0'sourceCompatibility = 1.8 targetCompatibility = 1.8repositories {mavenCentral() }dependencies {compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:'1.2.5.RELEASE'compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf', version:'1.2.5.RELEASE' }要使我們的基本Spring Boot應用程序正常運行,我們還需要三個文件。
IDSiteDemoApplication.java是應用程序的入口點:
package com.stormpath.idsite_demo;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication public class IDSiteDemoApplication {public static void main(String[] args) {SpringApplication.run(IDSiteDemoApplication.class, args);} }@SpringBootApplication批注設置了啟動應用程序所需的所有配置。
HomeController.java映射URI并解析為Thymeleaf模板:
package com.stormpath.idsite_demo.controllers;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;@Controller public class HomeController {@RequestMapping("/")public String home() {return "home";} }@Controller和@RequestMapping批注將此類設置為控制器,并將其配置為處理/ URI上的請求。 只需將String home鉤子返回到Thymeleaf模板體系結構中,即可將我們引到最終文件:
位于templates文件夾中的home.html是瀏覽至/時將呈現的模板:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"><head><th:block th:include="fragments/head :: head"/></head><body><div class="container-fluid"><div class="row"><div class="box col-md-6 col-md-offset-3"><div class="stormpath-header"><img src="http://stormpath.com/images/template/logo-nav.png"/></div><h1>Hello!</h1></div></div></div></body> </html>注意 :您可能會注意到上面模板中的th:include指令。 這是Thymeleaf體系結構的一部分,用于將文件包含在其他文件中。 該示例的完整源代碼包含templates/fragments/head.html文件。
那好吧 讓我們通過啟動最基本的Spring Boot應用程序來完善前5分鐘。
gradle clean build可以解決問題。 然后: java -jar build/libs/idsite_demo-0.1.0.jar
為SpringBoot身份驗證添加Stormpath
本節使用github存儲庫中的SpringBootStormpath標記。
在本節中,我們將:
- 創建一個Stormpath帳戶
- 生成Stormpath API密鑰對
- 將應用程序添加到您的Stormpath帳戶
- 更新您的Spring Boot網絡應用程序以顯示一些Stormpath應用程序信息
- 點火并觀看它的工作情況
創建一個Stormpath帳戶
轉到“風暴路徑注冊”頁面 。 輸入您的名字和姓氏,公司,電子郵件和密碼。
單擊注冊。
點擊收到的驗證電子郵件中的鏈接。 然后,您將看到為您生成的租戶名稱。
登錄。 做完了
注意 :有關多租戶應用程序的更多信息,我們上面有一個方便的博客文章 。
生成Stormpath API密鑰對
登錄到Stormpath帳戶后,您將看到以下屏幕:
單擊Create API Key按鈕。
單擊Create API Key按鈕并保存文件。
存儲在該文件中的API密鑰用于向Stormpath驗證您的應用程序。 在該文件中,有一個apiKey.id和apiKey.secret 。 您永遠都不想暴露apiKey.secret 。 因此,例如,您永遠不需要將api密鑰文件簽入git存儲庫。 稍后,當我們部署到Heroku時,我將向您展示如何配置您的應用程序以使用api密鑰,而不必將它們存儲在git存儲庫中。
Stormpath使用了詳細記錄的配置默認值,使使用我們的API變得超級容易。 這些默認值之一是api密鑰文件位置。 Java SDK將自動在您的主目錄中查找文件:
~/.stormpath/apiKey.properties如果將下載的文件復制到該路徑,則不需要其他配置即可從應用程序連接到Stormpath。
將應用程序添加到您的Stormpath帳戶
返回管理控制臺,點擊“應用程序”標簽。
您會注意到已經存在兩個應用程序: My Application和Stormpath 。 他們在注冊Stormpath時自動設置。 如果沒有定義任何其他Stormpath應用程序,則Spring Boot應用程序不需要進一步的配置。 默認情況下,它將連接到已定義的“ My Application實例。
但是,這里的最終目標是獲得一些Single Signon的好處,為此,我們需要多個應用程序才能登錄。
因此,讓我們創建另一個Stormpath應用程序。 單擊Create Application按鈕。
讓我們在這里分解選項。
名稱和(可選)描述不言自明。 而且,我們希望此應用程序已啟用是有意義的。
默認情況下,“ Create new Directory復選框處于選中狀態。 對于我們的示例,我未選中此選項。 相反,我已經選中了“將Map Account Stores to this Application復選框,并選擇了“ My Application Directory 。 最后,我單擊了“ DEFAULT ACCOUNT LOCATION和“ DEFAULT GROUP LOCATION單選按鈕。
那么,這是怎么回事? Stormpath的組織方式,應用程序可以使用任意數量的目錄作為其帳戶存儲。 Stormpath目錄只是包含帳戶和組的存儲桶。 出于我們的目的,我們可以使用注冊時為我們自動創建的目錄My Application Directory 。 在下面的獎勵部分,我將向您展示如何創建特定類型的目錄,以將Google身份驗證添加到您的應用中。 劇透警報:超級容易。
更新您的Spring Boot Webapp
讓我們將基本的Spring Boot應用程序連接到Stormpath,以顯示一些Stormpath應用程序信息。 這將為能夠與ID網站服務集成奠定基礎。
看看我們的HomeController :
package com.stormpath.idsite_demo.controllers;@Controller public class HomeController {@AutowiredApplication app;@RequestMapping("/")public String home(Model model) {model.addAttribute("appName", app.getName());model.addAttribute("appDescription", app.getDescription());return "home";} }現在,我們利用了Spring的@Autowired功能,為我們提供了Stormpath Application對象的句柄。 使用它,我們在Model對象中設置應用程序的名稱和描述,并將其傳遞給我們的模板。
這將我們帶入下一個更改,即home.html Thymeleaf模板:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"><head><th:block th:include="fragments/head :: head"/></head><body><div class="container-fluid"><div class="row"><div class="box col-md-6 col-md-offset-3"><div class="stormpath-header"><img src="http://stormpath.com/images/template/logo-nav.png"/></div><h1 th:inline="text">Hello! Welcome to App: [[${appName}]]</h1><h3 th:inline="text">[[${appDescription}]]</h3></div></div></div></body> </html>使用Thymeleaf表示法將信息拉出模型,我們引用了[[${appName}]]和[[${appDescription}]] 。
最后,我們將進行一個小(但功能強大)的更新以build.gradle文件。 我們正在更改此行:
compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf', version:'1.2.5.RELEASE'對此:
compile group: 'com.stormpath.spring', name: 'spring-boot-starter-stormpath-thymeleaf', version:'1.0.RC4.5'我們已經將Spring的Thymleaf Spring Boot Starter換成Stormpath的了。 這是很酷的一點:此Starter中包含了與Stormpath Java SDK交互所需的一切。
我們的應用程序文件中總共更改了7行,并添加了一個文件application.properties以開始掛接到Stormpath。
構建您的Java Web應用程序
我們在這里需要的其他一點信息是您創建的Stormpath應用程序的URL。
您可以導航到您的應用程序,從管理儀表板中找到它。
假設您將api密鑰文件放在~/.stormpath/apiKey.properties的默認位置,這是運行此示例所需的全部工作:
gradle clean build STORMPATH_APPLICATION_HREF=https://api.stormpath.com/v1/applications/6bHOGj63WM8cfC2nhD3Pki \java -jar build/libs/idsite_demo-0.1.0.jar當然,您需要放入自己的STORMPATH_APPLICATION_HREF 。
您可以看到瀏覽器中的頁面現在正在顯示來自我們創建的Stormpath應用程序的信息。
使用IDSite的Stormpath單點登錄…
…你猜到了。 五分鐘。
本節使用github存儲庫中的SpringBootStormpathIDSite標記。
您可能有向應用程序添加身份驗證和授權的經驗。 也許您是預先完成的。 也許那是您說過要達成的目標-最終。 無論哪種方式,這都很痛苦。 而且,它與您要解決的問題無關。 但是,這是至關重要且必要的。
在本節中,我們將添加以下功能:創建新用戶,登錄,將頁面訪問權限限制為僅那些已登錄用戶和更改密碼。 并且,我們將以最少的編碼和最少的配置來做到這一點。
標識站點配置
首先,我們將從管理控制臺設置IDSite。 單擊“ ID站點”選項卡。
滾動時,您會發現有許多字段帶有標簽Upgrade Required 。 基本ID網站功能可與我們的免費套餐一起使用,我們將在稍后看到。 具有自定義域或自定義用于身份驗證的模板需要付費訂閱。
在這里,我們只是要更新兩個字段并保存設置。
為了安全起見,您必須指定一個允許與ID網站建立連接的URL列表。
在“ Authorized Javascript Origin URLs字段中輸入http://localhost:8080 。
出于安全原因,您必須指定授權重定向URL的列表。
在Authorized Redirect URLs字段中輸入http://localhost:8080/并在另一行中輸入http://localhost:8080/idSiteResult 。
單擊Save按鈕。 這就是配置ID站點以在應用程序中啟用身份驗證和授權所需要的。
讓我們退后一步,用我們5分鐘中寶貴的30秒時間來查看ID網站背后的機制。
當用戶嘗試訪問您網站的受限區域時,如果他們尚未擁有有效的會話,他們將被重定向到您的ID網站。
他們將看到一個熟悉的登錄表單,其中包含用于創建新用戶和重置其密碼的選項。
這個是從哪里來的? 這是魔術嗎? 這是使用ID Site的一部分-通常由您自己編寫的所有身份驗證和授權流程。 不良。 (哎呀,這有點苛刻。但是,認真的說,由于身份驗證代碼實施不當,您多久閱讀一次有關安全漏洞的信息?)
身份驗證后,它們將被重定向回您指定的URL,并將能夠訪問該受限內容。
您的用戶似乎完全熟悉此過程-甚至平凡。 您將只需很少的配置或編碼即可完成此任務。
更新您的Spring Boot Webapp
啟用對您的Spring啟動應用程序IDSite是在一個單一的財產處理application.properties 。 我們還將另外兩條線來控制流。
stormpath.web.idSite.enabled = true stormpath.web.login.nextUri = /restricted/secret stormpath.web.logout.nextUri = /?status=logout第1行為您的應用程序啟用IDSite。 對。 這就是全部!
IDSite具有默認的標準身份驗證流。 默認情況下,在驗證用戶身份之后, /login重定向到/ ,在會話被銷毀后, /logout重定向到/login?status=logout 。
對于我們的應用程序,一旦用戶通過身份驗證,我們希望他們重定向回/restricted/secret 。 而且,一旦用戶注銷,我們將以狀態logout將他們重定向回前門。 上面的第2行和第3行完成了此操作。
我們在home.html模板中添加了一行,以啟動整個登錄流程:
<a class="btn btn-success" href="/restricted/secret">Click here for a secret message.</a> 我們將在一個新的控制器中添加大約15行代碼(總計)以掛接到ID Site。
讓我們看一下該控制器RestrictedController.java 。
讓我們分解一下:
第8、11和14行使用標準的Spring工具來注入值。
引用環境變量ala @environment['stormpath.sso.message.primary']提取在applications.properties中找到的屬性。
這是最重要的部分:Stormpath具有將系統環境變量轉換為應用程序環境變量的內置工具。 這使我們在Heroku這樣的部署環境中設置環境變量變得非常容易。
它是這樣工作的:將系統環境變量轉換為小寫,并將下劃線替換為句點。
因此, STORMPATH_SSO_MESSAGE_PRIMARY被轉換為stormpath.sso.message.primary 。
crossLink用于單點登錄的環境。 此變量包含指向IDSite中設置的另一個應用程序的受限頁面的完全限定URL。
messagePrimary和messageSecondary用于設置在受限頁面上顯示的消息。
這三個變量使我們可以將相同的代碼庫部署到多個Heroku應用程序,并在受限頁面上顯示不同的消息。
這是IDSite在幕后發生的事情:
第6行和第10行之間的所有重定向都在眨眼之間發生。
讓我們看一下新模板, restricted/secret.html :
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"><head><title>Hello World!</title><th:block th:include="fragments/head :: head"/></head><body><div class="container-fluid"><div class="row"><div class="box col-md-6 col-md-offset-3"><div class="stormpath-header"><img src="http://stormpath.com/images/template/logo-nav.png"/></div><h1 th:inline="text">[[${appName}]] App</h1><h1 th:inline="text">Hey, [[${account.fullName}]]</h1><h3 th:utext="${messagePrimary}">Primary</h3><h4 th:utext="${messageSecondary}">Secondary</h4><a class="btn btn-danger" href="/logout">Log Out</a><a class="btn btn-success" href="/">Go Home</a><a class="btn btn-warning" th:href="@{${crossLink}}">SSO: Jump to Other Site</a></div></div></div></body> </html>從與ID網站進行交互的角度來看,這里有兩行有趣的內容。
<h1 th:inline="text">Hey, [[${account.fullName}]]</h1>此行訪問Account的fullName屬性,該屬性在傳入模板的模型中自動設置。
<a class="btn btn-danger" href="/logout">Log Out</a>/logout端點由IDSite自動處理,并銷毀現有會話。
啟動您的Webapp并試用
像以前一樣啟動應用程序:
gradle clean build STORMPATH_APPLICATION_HREF=https://api.stormpath.com/v1/applications/6bHOGj63WM8cfC2nhD3Pki \java -jar build/libs/idsite_demo-0.1.0.jar由于我們尚未在Stormpath目錄中定義任何用戶,因此讓我們創建一個新用戶,然后確保我們可以以該用戶身份登錄和注銷。
首先,瀏覽到前門: http://localhost:8080
單擊友好的綠色按鈕。
點擊Create an Account鏈接。
單擊友好的綠色按鈕。
暈! 我們進來了!
如果現在單擊綠色按鈕,將帶您回到主頁。 如果然后單擊主頁上的綠色按鈕,則將直接轉到受限頁面。 您將不會再看到登錄表單。 這是因為您建立了有效的會話。
如果單擊紅色按鈕,您將注銷并重定向到主頁。 單擊綠色按鈕將您帶入會話,這將使您再次進入登錄表單。
您可能會注意到,創建帳戶后,我們將立即登錄并發送到受限頁面。 您可以通過在Stormpath管理控制臺中要求電子郵件驗證作為帳戶創建過程的一部分來放慢速度。
注意 :存在一個已知問題,您無法在同一會話中登錄到Stormpath Admin儀表板并使用ID Site進行身份驗證。 我們正在努力盡快解決此問題。 它永遠不會影響您的用戶,因為它們永遠不會出現在您的Stormpath Admin儀表板中。 目前,使用Stormpath Admin Dashbaord時,請使用單獨的瀏覽器配置文件或單獨的瀏覽器實例。
在5分鐘內使用Heroku進行單點登錄
本節使用github存儲庫中的SpringBootStormpathIDSite標記。
注意 :如果要測試SSO而不自行部署,則可以使用上方的Heroku Deploy按鈕部署兩個不同的Heroku Apps。
! 回家舒展! 那么,我一直在聽到這么多的SSO是什么? 有了我們建立的基礎,我們現在可以將該Web應用程序的多個實例部署到Heroku。 所以呢? 我會告訴你“那又怎樣!”
我們可以部署Web應用程序的多個實例雖然很新穎,但真正賦予它強大功能的是ID Site的單一登錄功能。 在本節結束時,您將看到通過登錄該Web應用程序的一個實例,您可以瀏覽到該Web應用程序的另一個實例的受限頁面, 而無需再次登錄。
首先,我們需要添加一個文件,以便Heroku知道如何啟動我們的應用程序。 這是一個單行的Procfile :
web: java $JAVA_OPTS -Dserver.port=$PORT -jar target/*.jar注意bash樣式變量: $PORT 。 這是由Heroku自動填充的,不需要我們明確設置。
讓我們設置和部署一個Heroku應用程序,并確保一切正常
heroku apps:create idsite-demo-app1 --remote idsite-demo-app1注意命令末尾的--remote 。 Heroku自動將git遠程添加到本地存儲庫,以便能夠部署您的應用程序。 默認情況下,此遙控器將命名為heroku 。 由于我們將部署該應用程序的多個實例,因此我們需要不同的遠程名稱。
現在,我們已經創建了應用程序,我們需要設置一些配置參數。 這是秘密秘訣的一部分,它使我們可以部署相同的代碼庫,但將Web應用程序鏈接到不同的Stormpath應用程序。
heroku config:set \STORMPATH_API_KEY_ID=<your api key id> \STORMPATH_API_KEY_SECRET=<your api key secret> \STORMPATH_APPLICATION_HREF=<your app href> \STORMPATH_SSO_CROSS_LINK=https://idsite-demo-app2.herokuapp.com/restricted/secret \STORMPATH_SSO_MESSAGE_PRIMARY="The secret is that chocolate is delicious"'!' \STORMPATH_SSO_MESSAGE_SECONDARY="Yummy"'!' \ --app idsite-demo-app1假設您已經將另一個名為idsite-demo-app2應用程序部署到了Heroku。 該應用程序的受限頁面上使用STORMPATH_SSO_CROSS_LINK鏈接到其他應用程序。 一切設置正確后,您無需再次登錄。 這就是單點登錄的強大功能!
還記得我之前說過的Stormpath如何進行自我配置的好處之一是,您不需要在代碼中嵌入敏感的api密鑰信息嗎? 這就是所有的地方。 在上面的命令中,我們為Heroku實例設置環境變量。 Stormpath SDK自動檢查STORMPATH_API_KEY_ID , STORMPATH_API_KEY_SECRET和STORMPATH_APPLICATION_HREF環境變量是否存在。 如果存在,則SDK在與API交互時將自動使用這些環境變量中的值。 這就是將我們的Spring Boot Web應用程序連接到正確的Stormpath應用程序的原因。
好。 設置好舞臺。 讓我們部署我們的應用程序!
git push idsite-demo-app1 master這會產生大量輸出,但讓我們看一下其中的一些亮點:
remote: Compressing source files... done. remote: Building source: ...remote: [INFO] remote: [INFO] ------------------------------------------------------------------------ remote: [INFO] Building demo 0.0.1-SNAPSHOT remote: [INFO] ------------------------------------------------------------------------ ...remote: [INFO] Installing /tmp/build_a7299c4194f003c6e3730e568a540e82/target/demo-0.0.1-SNAPSHOT.jar to /app/tmp/cache/.m2/repository/com/stormpath/idsite_demo/demo/0.0.1-SNAPSHOT/demo-0.0.1-SNAPSHOT.jar remote: [INFO] ------------------------------------------------------------------------ remote: [INFO] BUILD SUCCESS remote: [INFO] ------------------------------------------------------------------------ ...remote: -----> Discovering process types remote: Procfile declares types -> web remote: remote: -----> Compressing... done, 63.6MB remote: -----> Launching... done, v6 remote: https://idsite-demo-app1.herokuapp.com/ deployed to Heroku remote: remote: Verifying deploy.... done. To https://git.heroku.com/idsite-demo-app1.git* [new branch] master -> masterProcfile ,Heroku正在基于我們的Procfile發現進程類型。 在這種情況下,它是web 。
我們第一個應用程序的最后一項工作是將ID Site配置為接受來自它的連接并重定向到它。 跳回到ID站點的管理控制臺,然后將https://idsite-demo-app1.herokuapp.com添加到“授權Javascript原始URL”列表中,然后添加https://idsite-demo-app1.herokuapp.com/和https://idsite-demo-app1.herokuapp.com/idSiteResult到授權重定向URL列表。
確保單擊屏幕底部的“ Save按鈕。
并且, https ://idsite-demo-app1.herokuapp.com/準備就緒! 看看這個。 創建一個帳戶。 登錄并注銷。 玩得開心。
現在,我們到達了SSO應許之地的大門。 這就是所有要做的事情:
- 創建另一個Stormpath應用程序
- 創建另一個Heroku應用程序
- 設置新的Heroku應用程序的配置
- 將我們的Spring Boot應用程序部署到新的Heroku應用程序
- 更新我們的ID網站,以包括用于授權來源和重定向的新URL
我們只是在漂洗并重復我們以前所做的事情。
讓我們創建新的Stormpath應用程序:
請注意,我們正在為此新應用程序映射相同的帳戶存儲。
是時候創建一個新的Heroku應用程序了
heroku apps:create idsite-demo-app2 --remote idsite-demo-app2并且,配置它:
heroku config:set \STORMPATH_API_KEY_ID=<your api key id> \STORMPATH_API_KEY_SECRET=<your api key secret> \STORMPATH_APPLICATION_HREF=<your app href> \STORMPATH_SSO_CROSS_LINK=https://idsite-demo-app1.herokuapp.com/restricted/secret \STORMPATH_SSO_MESSAGE_PRIMARY="The secret is that ice cream is delicious"'!' \STORMPATH_SSO_MESSAGE_SECONDARY="Yummy"'!' \ --app idsite-demo-app2確保使用新創建的Stormpath應用程序的完整URL。
部署時間:
git push idsite-demo-app2 master最后,ID網站URL更新:
現在,您可以在待辦事項列表上選中以下復選框:構建和部署SSO應用程序。 你完成了!
您可以登錄到https://idsite-demo-app1.herokuapp.com 。 然后,您可以直接跳至https://idsite-demo-app2.herokuapp.com/restricted/secret ,而無需再次登錄!
祝您滿意!
在本文中,您已經創建了一個Spring Boot Web應用程序,該應用程序啟用了具有Stormpath的ID站點服務的Single Sign-On。 Stormpath托管登錄表單以及與創建新用戶和重置密碼相關的所有其他鏈接和表單。
通過一個控制器中的少量代碼,您就可以為您的應用程序認證和授權用戶。 您可以使用Heroku快速部署它。 我很想聽聽您使用本文中的示例的經驗。
如果您有興趣在Spring Boot中使用Stormpath的更多功能,這是我們的Spring Boot Webapp示例快速入門
隨時隨地發送電子郵件或我個人的電話。
建筑物身份管理,包括身份驗證和授權? 嘗試Stormpath! 我們的REST API和強大的Java SDK支持可以消除您的安全風險,并且可以在幾分鐘內實現。 注冊 ,再也不會建立auth了!
翻譯自: https://www.javacodegeeks.com/2016/10/single-sign-java-20-minutes-spring-boot-heroku.html
java heroku
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java heroku_使用Spring Boot和Heroku在20分钟内完成Java的单点登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为FreeBuds Pro 3:超CD
- 下一篇: 今年9月华为一手好牌打得太漂亮了 博主感