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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot登录选项快速指南

發(fā)布時間:2023/12/3 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot登录选项快速指南 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

“我喜歡編寫身份驗(yàn)證和授權(quán)代碼。” ?從來沒有Java開發(fā)人員。 厭倦了一次又一次地建立相同的登錄屏幕? 嘗試使用Okta API進(jìn)行托管身份驗(yàn)證,授權(quán)和多因素身份驗(yàn)證。

在本文中,您將研究使用Spring Boot 2.1實(shí)現(xiàn)登錄功能的各種選項(xiàng)。 您將從最簡單的基本身份驗(yàn)證開始,除了內(nèi)部后端工具外,您可能永遠(yuǎn)不想使用它,然后轉(zhuǎn)到簡單的基于表單的身份驗(yàn)證頁面。 接下來,您將通過覆蓋一些默認(rèn)模板和控制器來自定義默認(rèn)的,自動生成的表單。 最后,您將繼續(xù)使用OAuth 2.0添加單一登錄。 您將看到如何允許用戶使用Github和Okta登錄。

本教程的假設(shè)是非常基本的。 我假設(shè)您已經(jīng)對Spring和Spring Boot有了基本的了解,但是不一定對Spring Security或Spring的各種安全功能有深入的了解。 您將需要安裝git ,并且gradle會很好,但是您可以對所有g(shù)radle命令使用Gradle包裝器,因此這并不是絕對必要的。

繼續(xù)克隆我為本教程創(chuàng)建的存儲庫 :

git clone https://github.com/oktadeveloper/okta-spring-boot-login-options-example.git

該存儲庫包含五個子目錄:

  • basic-auth
  • form-auth
  • custom-form-auth
  • oauth-start
  • oauth-okta-github
  • oauth-okta-starter

這些對應(yīng)于本教程的四個部分(最后三個部分是OAuth部分,其中三個部分)。 除了oauth-start ,這些都是功能齊全的應(yīng)用程序。 在本教程中,您將遍歷代碼的含義以及如何構(gòu)建它們。

在Spring Boot中構(gòu)建HTTP基本登錄

基本身份驗(yàn)證是基本的。 這是直接內(nèi)置在HTTP協(xié)議中的簡單方案。 它來自田園時代,大量的數(shù)據(jù)和金錢流過互聯(lián)網(wǎng)的各種管道。 因此,它確實(shí)不是非常安全。 根據(jù)規(guī)范,密碼和用戶名使用HTTP authorization標(biāo)頭中的Base64進(jìn)行編碼。 因?yàn)锽ase64可能也是純文本格式,所以如果您要對任何內(nèi)容使用基本身份驗(yàn)證,請確保始終使用HTTPS / SSL,因?yàn)槊總€請求都將發(fā)送身份驗(yàn)證憑據(jù)。

使用您喜歡的IDE或編輯器打開basic-auth Spring Boot項(xiàng)目。

您要簽出的第一件事是build.gradle文件。 復(fù)制如下。 我不會詳細(xì)介紹所有這些內(nèi)容,但是如果您還不熟悉,我想讓您了解這里發(fā)生的一些事情。

plugins { id 'org.springframework.boot' version '2.1.4.RELEASE' id 'java' } apply plugin: 'io.spring.dependency-management' group = 'com.okta.springsecurityauth' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' }

有兩個Spring插件被添加到構(gòu)建中: org.springframework.boot和io.spring.dependency-management 。 請注意,版本設(shè)置為2.1.4.RELEASE 。 過去,Spring的真正麻煩之一就是依賴管理。 Spring是一個龐大的庫集合,當(dāng)您引入一個庫時,您需要引入其他具有兼容版本的庫。 當(dāng)您更新一個時,通常這會導(dǎo)致其他人失去兼容性。 過去解決此問題可能會使您陷入所謂的“依賴地獄”。

幸運(yùn)的是,Spring使事情變得更加輕松。 查看我們的兩個Spring依賴項(xiàng):

dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' ... }

請注意,它們沒有版本號。 這些基本上是功能集(在這種情況下為安全性和Web)的大型元依賴項(xiàng),并且Spring插件根據(jù)此行中設(shè)置的版本為您管理所有子依賴項(xiàng):

id 'org.springframework.boot' version '2.1.4.RELEASE'

該build.gradle文件的全部執(zhí)行摘要將加載Spring Boot版本2.1.4,并將添加Web和安全功能模塊。 Spring的所有可用啟動程序的列表可以在其docs中找到 。

除了gradle.file ,實(shí)際上只有三個其他感興趣的文件,所有Java文件。 在src/main/java/com/okta/springsecurityauth查看,您將看到它們:

  • Application.java (自動魔術(shù)化整個Spring Boot框架的主類)
  • SecurityConfiguration.java (配置安全性選項(xiàng))
  • WebController.java (非常基本的HTTP請求控制器)

Application.java是Application.java的入口點(diǎn)。 在這種情況下,而且在許多情況下,這非常簡單。 最重要的是@SpringBootApplication批注,它告訴您的Spring依賴項(xiàng)引導(dǎo)整個Spring Boot框架。 當(dāng)然,還有main()方法,這是Spring加載和運(yùn)行Application類的地方。

package com.okta.springsecurityauth; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

WebController.java足夠聰明,它是您的Web請求控制器。 它定義了請求端點(diǎn)并確定了響應(yīng)。

package com.okta.springsecurityauth; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class WebController { @RequestMapping("/") @ResponseBody public String index() { return "That's pretty basic!"; } }

在這種情況下,Web控制器將返回一個簡單的字符串,而不是路由到模板文件,這將在稍后介紹。 @ResponseBody批注允許該方法直接返回字符串。

在本教程中, SecurityConfiguration.java是執(zhí)行操作的地方。 這是Spring Boot配置為使用基本身份驗(yàn)證的地方。 您還可以在這里配置硬編碼的默認(rèn)用戶名和密碼(顯然,這不是我在生產(chǎn)中要做的,但是非常適合教程)。

package com.okta.springsecurityauth; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Override public void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() .and() .httpBasic(); } @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser("user") .password("{noop}pass") // Spring Security 5 requires specifying the password storage format .roles("USER"); } }

如果您查看configure()方法,您將看到http對象及其流暢接口用于告訴spring認(rèn)證所有請求并使用HTTP基本認(rèn)證。 這是相當(dāng)瑣碎的,但是稍后您將在此界面中看到大量功能。

configure()方法主要是本教程的一個技巧,目的是在內(nèi)存身份驗(yàn)證管理器中創(chuàng)建用戶。 您正在使用用戶名user和password pass創(chuàng)建一個用戶。 用戶已分配了USER角色。

而已!

打開終端,并確保您位于basic-auth項(xiàng)目的根目錄中。 使用以下命令運(yùn)行項(xiàng)目:

./gradlew bootRun

等待Spring Boot應(yīng)用完成加載。

導(dǎo)航到http://localhost:8080 。

您會看到一個登錄窗口。

使用user登錄并作為憑據(jù)pass 。

系統(tǒng)將顯示一個成功屏幕,顯示“這很簡單!”

配置基于Spring Boot Form的登錄

使用基本身份驗(yàn)證時,登錄表單實(shí)際上是由瀏覽器而不是由應(yīng)用程序生成的。 它顯示為無樣式的彈出窗口。 這不是很好的流程,也不是非常專業(yè)的外觀。

只需對代碼進(jìn)行一些很小的更改,您就可以讓Spring Boot自動生成外觀更專業(yè)的登錄表單。 可以在GitHub存儲庫的form-auth子目錄中找到完整的代碼,或者如果仍然打開,則可以僅對basic-auth項(xiàng)目進(jìn)行更改。

您想要將SecurityConfiguration.java文件的configure()方法更改為如下所示:

@Override public void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() .and() .formLogin() .and() .httpBasic(); }

唯一的不同是添加了.and().formLogin() 。 除此之外,這兩個項(xiàng)目是相同的。

使用./gradlew bootRun再次運(yùn)行它。

導(dǎo)航到http://localhost:8080 (您可能需要打開一個隱身窗口以觸發(fā)重新認(rèn)證)。

這次,您將看到Spring為您生成的登錄頁面。

自定義Spring Boot登錄表單

我們?nèi)找鎻?fù)雜的Spring Boot身份驗(yàn)證過程的下一步是自定義登錄表單。 Spring使這個超級容易。 但是,有許多新文件,并且對代碼的更改比上次更多,因此我建議打開在回購的custom-form-auth文件夾下找到的項(xiàng)目。

在build.gradle文件中,有一個新的依賴項(xiàng)。 這引入了Thymeleaf模板引擎,這是與Spring Boot一起使用的默認(rèn)Web模板引擎。

dependencies { ...implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' ... }

現(xiàn)在, SecurityConfiguration.java文件如下所示(為簡潔起見,省略了一些部分):

package com.okta.springsecurityauth; ...@Configuration @EnableWebSecurity public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Override public void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers( "/public/**").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login.html") .failureUrl("/login-error.html") .permitAll(); }...}

請注意, .httpBasic()已消失, .formLogin()具有一些新選項(xiàng)。 在這里,您將設(shè)置一個登錄頁面和一個登錄失敗頁面,并確保它們是公開可用的。

還要注意這一行:

.antMatchers( "/public/**").permitAll()

在這里,您無需進(jìn)行身份驗(yàn)證即可使類路徑根目錄上的public目錄可用。 在src/main/resources/static有一個public目錄。 啟動該應(yīng)用程序時, src/main/resources/static目錄下的所有內(nèi)容都將復(fù)制到類路徑,因此public目錄最終位于類路徑根目錄下,并且其中的所有文件無需身份驗(yàn)證即可使用。 這非常適合圖像,JavaScript文件和CSS文件之類的東西。

WebController.java也有一些新的端點(diǎn):

package com.okta.springsecurityauth; ...@Controller public class WebController { @RequestMapping("/") @ResponseBody public String index() { return "You made it!"; } // Login form @RequestMapping("/login.html") public String login() { return "login.html"; } // Login form with error @RequestMapping("/login-error.html") public String loginError(Model model) { model.addAttribute("loginError", true); return "login.html"; } }

注意,雖然index()方法具有@RequestBody批注,這意味著它將直接以字符串形式返回其請求主體,但login()和loginError()方法卻沒有。 相反,他們返回的是Spring Boot將呈現(xiàn)的Thymeleaf模板的名稱。 默認(rèn)情況下,這些模板位于src/main/resources/templates 。 另外,請注意, loginError()有點(diǎn)路由技巧。 實(shí)際上,它只是返回login.html模板,但在模型中注入了error屬性。

src/main/resources/templates/login.html是一個新文件。 這是登錄模板文件。

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Login page</title> <link th:href="@{/public/style.css}" rel="stylesheet" /> </head> <body> <div id="container"> <h2>Login page</h2> <form th:action="@{/login.html}" method="post"> <label for="username">Username</label> <input type="text" id="username" name="username" autofocus="autofocus" /> <label for="password">Password</label> <input type="password" id="password" name="password" /> <input id="submit" type="submit" value="Log in" /> </form> <p th:if="${loginError}" class="error">Wrong user or password</p> </div> </body> </html>

關(guān)于Thymeleaf的真實(shí),深入的解釋遠(yuǎn)遠(yuǎn)超出了本教程的范圍。 如果愿意,請?jiān)L問他們的網(wǎng)站進(jìn)行深入研究。

還記得您將public目錄公開嗎? 這行有一個非常基本的樣式表。 通常,我將其包括在內(nèi)是為了演示一種在模板文件中包含靜態(tài)資源的方法。

<link th:href="@{/public/style.css}" rel="stylesheet" />

根據(jù)模型的loginError屬性有條件地呈現(xiàn)錯誤行,該屬性由控制器的loginError()方法注入。

<p th:if="${loginError}" class="error">Wrong user or password</p>

除此之外,這是一個非常簡單的登錄表單!

再次使用./gradlew bootRun運(yùn)行它。

您將看到樣式化的定制登錄表單:

使用user:pass再次登錄,您將看到我們的成功屏幕,顯示“您成功了!”

使用GitHub和Single Sign-On的Spring Boot OAuth 2.0登錄

到目前為止,您已經(jīng)使用臨時內(nèi)存AuthenticationManager在本地完成了所有AuthenticationManager 。 在生產(chǎn)中更常見的是,應(yīng)用程序支持OAuth 2.0和OIDC(開放ID連接)。 OAuth 2.0是開放的授權(quán)標(biāo)準(zhǔn)。 OIDC建立在OAuth 2.0之上,并添加了身份驗(yàn)證,以實(shí)現(xiàn)更完整的身份管理協(xié)議。

在本教程中,您首先將看到如何使用GitHub添加單點(diǎn)登錄(SSO)。 之后,您將看到如何使用軟件即服務(wù)身份解決方案提供商Okta。

兩者都非常簡單,并且允許用戶重用現(xiàn)有的身份提供者確實(shí)有好處。 強(qiáng)迫用戶處理和管理數(shù)百個網(wǎng)站的單獨(dú)的強(qiáng)密碼是一個愚蠢的事情,最終會導(dǎo)致弱密碼和在多個站點(diǎn)之間重復(fù)使用的密碼(乘以其易受攻擊性); 更不用說舊的“只是在便簽上隨意寫,然后將其粘貼到顯示器上”密碼管理解決方案。

通過GitHub Single Sign-on簡化您的Spring Boot App登錄

現(xiàn)在是時候?qū)崿F(xiàn)GitHub OAuth 2.0客戶端了。

首先,您需要在GitHub上注冊一個新的OAuth應(yīng)用程序。 轉(zhuǎn)到他們的網(wǎng)站并立即執(zhí)行此操作。 填寫如下所示的值。

請?zhí)貏e注意Authorization回調(diào)URL ,因?yàn)樗枰獮閔ttp://localhost:8080/login/oauth2/code/github 。

單擊注冊應(yīng)用程序 。 請注意客戶端ID客戶端密鑰,因?yàn)槟芸炀蜁枰鼈儭?

現(xiàn)在,回到Java。 在您的IDE中打開oauth-start項(xiàng)目。

在build.gradle文件中,注意幾個新的依賴項(xiàng):

... dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.security:spring-security-oauth2-client' implementation 'org.springframework.security:spring-security-oauth2-jose' ... }

安全性,Thymeleaf和網(wǎng)絡(luò)啟動程序仍然存在。 但是,有兩個新的Spring啟動器: oauth2-client和oauth2-jose 。

oauth2-client了實(shí)現(xiàn)OAuth 2.0客戶端所需的庫。 oauth2-jose了一些用于簽名和加密的通用庫。 JOSE代表Java對象簽名和加密。

OConfiguration登錄的SecurityConfiguration.java文件已更新:

package com.okta.spring.SpringBootOAuth; ...@Configuration public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Override public void configure(HttpSecurity http) throws Exception { http.antMatcher("/**") .authorizeRequests() .antMatchers("/", "/login**").permitAll() .anyRequest().authenticated() .and() .oauth2Login(); } }

需要注意的兩件事:1)對/和login所有請求都是公共的,以及2) oauth2Login()方法是導(dǎo)致Spring Boot配置OAuth 2.0客戶端的原因。

如果這似乎太簡單了 ,那是正確的。 一些配置已移至application.yml文件。

打開src/main/resources/application.yml文件:

spring: thymeleaf: cache: false security: oauth2: client: registration: github: client-id: << your GitHub client ID>> client-secret: << your GitHub client secret >>

您需要從上方將Client IDClient Secret填寫到該文件中。

Web路由和模板也已更改。 查看WebController.java文件:

package com.okta.spring.SpringBootOAuth; ...@Controller public class WebController { @RequestMapping("/securedPage") public String securedPage(Model model, @RegisteredOAuth2AuthorizedClient OAuth2AuthorizedClient authorizedClient, @AuthenticationPrincipal OAuth2User oauth2User) { model.addAttribute("userName", oauth2User.getName()); model.addAttribute("clientName", authorizedClient.getClientRegistration().getClientName()); model.addAttribute("userAttributes", oauth2User.getAttributes()); return "securedPage"; } @RequestMapping("/") public String index() { return "index"; } }

該控制器定義了兩個端點(diǎn),這些端點(diǎn)返回兩個模板文件:

  • / –> src/main/resources/templates/index.html
  • /securedPage –> src/main/resources/templates/securedPage.html

在securedPage()方法中,請注意如何使用依賴性注入來獲取有關(guān)已認(rèn)證用戶的信息,以便可以將其注入模型中,然后將其傳遞給模板文件。

src/main/resources/templates/index.html非常簡單:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Home</title> </head> <body> <h1>Spring Security SSO</h1> <a href="securedPage">Login</a> </body> </html>

以及src/main/resources/templates/securedPage.html模板文件:

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Secured Page</title> </head> <body> <h1>Secured Page</h1> <div>User Name: <span th:text="${userName}"></span></div> <div>Client Name: <span th:text="${clientName}"></span></div> <div>User Attributes: <span th:text="${userAttributes}"></span></div> </body> </html>

現(xiàn)在您可以嘗試了。 再次,確保您在項(xiàng)目根目錄中,然后運(yùn)行./gradlew bootRun 。

導(dǎo)航到http://localhost:8080 ,然后單擊“ 登錄”鏈接。

如果您的瀏覽器繞過登錄頁面并直接進(jìn)入/securedPage端點(diǎn),請打開一個隱身瀏覽器,然后重試。

首先,您需要授權(quán)Spring Boot Login應(yīng)用程序使用您的Github帳戶進(jìn)行OAuth登錄。

接下來,您將看到GitHub OAuth登錄屏幕:

如果成功,您將看到一個簡單的文本頁面,該頁面以粗體顯示“安全頁面”,并顯示有關(guān)您的OAuth用戶的信息。

很漂亮吧?

現(xiàn)在,您將添加第二個OAuth提供程序:Okta。

將使用Okta登錄的OAuth 2.0登錄到您的Spring Boot應(yīng)用

首先,如果您還沒有開發(fā)人員帳戶,請?jiān)L問developer.okta.com并注冊一個免費(fèi)的開發(fā)人員帳戶。

擁有帳戶后,要創(chuàng)建OAuth / OIDC應(yīng)用,請打開Okta開發(fā)人員信息中心。 單擊“ 應(yīng)用程序”頂部菜單項(xiàng),然后單擊“ 添加應(yīng)用程序”

選擇Web作為平臺,然后單擊Next

為應(yīng)用命名。 我將其命名為“ Spring Boot Login”,但是您可以隨意命名。

登錄重定向URI更改為http://localhost:8080/login/oauth2/code/okta 。

其他默認(rèn)值也可以。

單擊完成

在下一頁上記下客戶端ID客戶端密鑰

更新Okta的application.yml文件:

spring: ...security: oauth2: client: registration: github: client-id: << Your GitHub Client ID >> client-secret: << Your GitHub Client Secret >> okta: client-id: << Your Okta Client ID >> client-secret: << Your Okta Client Secret >> client-name: Oktaprovider: okta: issuer-uri: https://{yourOktaDomain}/oauth2/default

您需要添加Okta注冊和提供商條目,并確保填寫您的Client IDClient Secret和Okta發(fā)行者。

重新啟動應(yīng)用程序,轉(zhuǎn)到http://localhost:8080 ,然后單擊“ 登錄”鏈接。

這次,您將可以選擇OAuth提供商。 該屏幕由Spring Boot自動生成。

單擊Okta ,您將被帶到Okta登錄頁面(通常有關(guān)注銷和/或隱姓埋名的警告)。

成功登錄,您將看到我們的成功頁面。

至此,您已經(jīng)將oauth-start項(xiàng)目與oauth-github-okta項(xiàng)目文件夾進(jìn)行了更新,并且已經(jīng)看到了將多個OAuth提供程序添加到Spring Boot應(yīng)用程序是多么容易。

使用Okta的Spring Boot Starter簡化OAuth 2.0登錄

在本教程中,您要做的最后一件事是將Okta配置為允許新用戶注冊。 但是,在此之前,我想向您介紹Okta Spring Boot Starter。 該項(xiàng)目簡化了Spring Boot和Okta的集成。 該項(xiàng)目的自述文件是獲取更深入信息的好資源。

您將把Okta Spring Boot Starter集成到該項(xiàng)目中,并稍微簡化配置。 為了簡單起見,您還將刪除GitHub OAuth集成。

向build.gradle文件添加一個依賴build.gradle :

dependencies {...implementation 'com.okta.spring:okta-spring-boot-starter:1.1.0'... }

現(xiàn)在更新application.yml文件:

okta: oauth2: issuer: https://{yourOktaDomain}/oauth2/default client-id: <<yourOktaClientID>>client-secret: <<yourOktaClientSecret>> spring: thymeleaf: cache: false

填寫您的客戶密碼客戶ID

嘗試一下。 運(yùn)行./gradlew bootRun 。

您應(yīng)該能夠通過Okta登錄。 這次您將無法選擇OAuth 2.0提供程序。

啟用用戶注冊

登錄到您的developer.okta.com帳戶。

將鼠標(biāo)懸停在“ 用戶”上 ,然后單擊“ 注冊”

啟用注冊。 此外,啟用登錄頁面中的“顯示“注冊””鏈接……選項(xiàng)。 這將導(dǎo)致注冊鏈接顯示在托管登錄頁面中。

使用隱身窗口再次登錄。 這次您會注意到該用戶可以選擇注冊為新用戶。

輸入您的電子郵件地址,密碼和名稱; 設(shè)置一些安全性問題,您就完成了! 您使用Okta為您的應(yīng)用程序注冊了一個新用戶。

Okta的自助注冊選項(xiàng)可以做更多的事情。 所有這些都可以配置和定制。 看看他們的文檔以進(jìn)行更深入的研究。

在oauth-okta-starter目錄中可以找到使用Okta Spring Boot Starter并刪除GitHub OAuth的最終產(chǎn)品。

了解有關(guān)Spring Boot登錄選項(xiàng)和安全身份驗(yàn)證的更多信息

在本教程中,您涵蓋了很多領(lǐng)域。 您使用基本身份驗(yàn)證,基于表單的身份驗(yàn)證和定制的基于表單的身份驗(yàn)證實(shí)現(xiàn)了Spring Boot應(yīng)用程序。 然后,您使用OAuth 2.0和OIDC使用GitHub和Okta實(shí)施SSO。 最后,您了解了如何使用Okta Spring Boot Starter簡化Spring Boot中的OAuth / OIDC SSO配置,以及如何允許用戶通過Okta自助注冊。

您可以在GitHub上的本教程中找到示例的所有代碼。

要深入研究創(chuàng)建自定義登錄表單,請查看有關(guān)該主題的Spring文檔 。

Spring Security的oauth2login示例還提供了一些很好的信息和更多示例。

以下是一些相關(guān)的博客文章,它們演示了如何使用Spring Boot和Spring Security進(jìn)行登錄和身份驗(yàn)證:

  • Java應(yīng)用程序的簡單令牌認(rèn)證
  • 在15分鐘內(nèi)使用Spring Boot和Spring Security構(gòu)建一個Web應(yīng)用程序
  • 創(chuàng)建一個安全的Spring REST API
  • 使用Spring Boot和Vue.js構(gòu)建一個簡單的CRUD應(yīng)用

如果您喜歡這篇文章,請?jiān)谏缃幻襟w{ Twitter , Facebook , LinkedIn , YouTube }上關(guān)注我們,以了解我們何時發(fā)布類似的文章。

“ Spring Boot登錄選項(xiàng)快速指南”最初于2019年5月15日發(fā)布在Okta開發(fā)人員博客上。

“我喜歡編寫身份驗(yàn)證和授權(quán)代碼。” ?從來沒有Java開發(fā)人員。 厭倦了一次又一次地建立相同的登錄屏幕? 嘗試使用Okta API進(jìn)行托管身份驗(yàn)證,授權(quán)和多因素身份驗(yàn)證。

翻譯自: https://www.javacodegeeks.com/2019/06/quick-guide-spring-boot-options.html

總結(jié)

以上是生活随笔為你收集整理的Spring Boot登录选项快速指南的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。