日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

使用Spring Boot和Heroku在20分钟内完成Java的单点登录

發布時間:2023/12/3 java 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Spring Boot和Heroku在20分钟内完成Java的单点登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

建筑物身份管理,包括身份驗證和授權? 嘗試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分鐘內在您的應用程序中獲得單點登錄的額外好處。

繼續閱讀-滴答滴答!

這是本教程所需的先決條件:

  • 搖籃2.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 。

package com.stormpath.idsite_demo.controllers;@Controller public class RestrictedController {@AutowiredApplication app;@Value("#{ @environment['stormpath.sso.cross.link'] ?: '/' }")private String crossLink;@Value("#{ @environment['stormpath.sso.message.primary'] ?: 'Primary' }")private String messagePrimary;@Value("#{ @environment['stormpath.sso.message.secondary'] ?: 'Secondary' }")private String messageSecondary;@RequestMapping("/restricted/secret")public String secret(HttpServletRequest request, Model model) {Account account = AccountResolver.INSTANCE.getAccount(request);if (account == null) {return "redirect:/login";}model.addAttribute("appName", app.getName());model.addAttribute("crossLink", crossLink);model.addAttribute("messagePrimary", messagePrimary);model.addAttribute("messageSecondary", messageSecondary);return "restricted/secret";} }

讓我們分解一下:

第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的幕后故事:

  • 在主頁上,單擊“ Click here for a secret message. 鏈接到/restricted/secret 。
  • 根據@RequestMapping注釋輸入RestrictedController的secret方法。
  • 由于尚未建立會話,因此account變量將顯示為null 。
  • 根據第22行的條件,您將被重定向到/login頁面。
  • 登錄頁面由您的IDSite托管。
  • 輸入憑據并單擊“ Login按鈕后,您將被重定向回您的應用程序。
  • 您的Spring Boot應用程序會自動處理IDSite重定向回的/idSiteResult回調。
  • 基于在設置applications.properties ,內置IDSite回調處理程序將重定向到/restricted/secret
  • 這次,有一個會話, account變量將不會為null 。
  • 最后,將返回restricted/secret模板。
  • 第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 -> master

    最底層,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

    總結

    以上是生活随笔為你收集整理的使用Spring Boot和Heroku在20分钟内完成Java的单点登录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美高h视频 | 国产精品欧美久久久久天天影视 | 国产精品久久久久久久久久久久久久久久 | 国产一区二区三区四区五区在线 | 91成人免费观看 | 古代黄色一级片 | 妞干网精品 | 精品国产乱码一区二区三区99 | 亚洲第一成年人网站 | 日本少妇裸体做爰高潮片 | av免费网站观看 | 欧美成人精品欧美一级乱 | 国产麻豆a毛片 | 动漫大乳美女 | 亚洲AV无码久久精品色三人行 | 超碰免费在 | 国产精品爱啪在线线免费观看 | 免费性片| 精品一区在线视频 | a级黄色网 | 久久美女精品 | 香蕉视频免费看 | 色av吧 | 最近中文字幕无免费 | 久久精品国产亚洲av香蕉 | 国产欧美一区二区三区鸳鸯浴 | 精品熟妇无码av免费久久 | 色婷婷在线观看视频 | 国产人妻精品一区二区三区 | 视频一区二区三 | 加勒比hezyo黑人专区 | 致单身男女免费观看完整版 | 日韩视频在线观看一区二区 | 黄页网站视频 | 亚洲人成7777| 动漫艳母在线观看 | 国产激情视频在线 | 超碰在线人人干 | 日本aaa级片| 亚洲一区二区伦理 | 日韩高清av | 欧美激情日韩 | 成人夜色| 女生张开腿让男生插 | 一区二区三区国产av | 日本高清视频在线观看 | 欧美激情片一区二区 | 日韩三级中文 | 一本久道久久综合 | 国产三级一区二区三区 | 日韩欧美国产视频 | 天天摸天天添 | 色97色 | 麻豆出品 | 深夜福利视频在线 | 日本免费网站 | 日韩人妻精品一区二区三区 | 99热在线观看免费精品 | 波多野结衣国产 | 精品国产乱码久久久久久蜜柚 | 丁香花电影免费播放在线观看 | 久久激情视频 | 久久久久久黄 | 国产人免费人成免费视频 | 免费观看亚洲 | 啪啪网站免费 | 欧美日韩在线国产 | 久久国产精品免费看 | 午夜伦情| 久久久久亚洲av成人人电影 | 久久人人爽人人人人片 | 99精品欧美一区二区 | 久草免费福利视频 | 国产在线高潮 | 国产精品呻吟久久 | 91免费网站 | 尤果网福利视频在线观看 | 极品少妇xxxx精品少妇 | 阿v视频免费在线观看 | 亚洲高清久久久 | 干成人网 | 久久免费视频2 | 亚洲熟悉妇女xxx妇女av | 国产模特av私拍大尺度 | 美女自拍偷拍 | 国产黄色一级大片 | 激情欧美综合 | 老熟妇仑乱视频一区二区 | 美女天天操 | 人妻视频一区二区 | 亚洲精品人人 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 国产又黄又粗 | 丁香八月婷婷 | 毛片视频观看 | 国产精品视频一区二区在线观看 | 欧美国产日韩一区 | 日日综合网 | 欧美第一精品 |