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

歡迎訪問 生活随笔!

生活随笔

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

javascript

一个具有Spring Boot,Spring Security和Stormpath的简单Web应用程序-15分钟

發(fā)布時(shí)間:2023/12/3 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个具有Spring Boot,Spring Security和Stormpath的简单Web应用程序-15分钟 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

建筑物身份管理,包括身份驗(yàn)證和授權(quán)? 嘗試Stormpath! 我們的REST API和強(qiáng)大的Java SDK支持可以消除您的安全風(fēng)險(xiǎn),并且可以在幾分鐘內(nèi)實(shí)現(xiàn)。 注冊 ,再也不會(huì)建立auth了!

更新 :我們最近發(fā)布了對(duì)Stormpath Spring Security集成的修訂。 您不再需要從特殊的Stormpath安全配置器適配器繼承。 而是使用Stormpath DSL(特定于域的語言)。 看下面看這有多容易。

?在Stormpath,我們?Spring Boot。 構(gòu)建豐富的Java Web應(yīng)用程序變得如此輕松有趣。

我們對(duì)最新的Java SDK版本感到非常興奮,其中包括對(duì)我們的Spring Security和Spring Boot支持的重大改進(jìn)。

如果您以前曾經(jīng)構(gòu)建過Web應(yīng)用程序,那么您將知道所有“用戶資料”都是您的頭疼。 Stormpath為開發(fā)人員提供了開箱即用的所有“用戶資料”,因此您可以繼續(xù)真正關(guān)心的是您的應(yīng)用程序! 到本教程完成時(shí)(我保證不到15分鐘),您將擁有一個(gè)可以正常運(yùn)行的Spring Boot Web應(yīng)用程序,該應(yīng)用程序可以通過Spring Security保護(hù)用戶對(duì)受限路徑的訪問,并得到Stormpath的支持。

我們將專注于我們的Spring Boot集成,以推出一個(gè)簡單的Spring Boot Web應(yīng)用程序,該應(yīng)用程序具有完整的用戶注冊和登錄系統(tǒng),并具有以下功能:

  • 登錄和注冊頁面
  • 密碼重置工作流程
  • 根據(jù)組成員身份限制訪問
  • 能夠輕松啟用Java庫中的其他Stormpath功能(API身份驗(yàn)證,SSO,社交登錄等)的功能

在本演示中,我們將使用stormpath-default-spring-boot-starter 。 它的模塊化設(shè)計(jì)在Spring Boot 1.3.0和Spring Security 4.0.3以及Spring Boot WebMVC和Thymeleaf模板引擎中得到了體現(xiàn)。 我將使用Mac,終端應(yīng)用程序和IntelliJ IDE。

本教程的所有代碼都可以在這里找到。

在整個(gè)文章中,您可以通過單擊Deploy to Heroku按鈕來查看示例代碼。 您需要做的就是注冊一個(gè)免費(fèi)的Heroku帳戶。

什么是暴風(fēng)雨?

Stormpath是一項(xiàng)API服務(wù),允許開發(fā)人員創(chuàng)建,編輯和安全地存儲(chǔ)
用戶帳戶和用戶帳戶數(shù)據(jù),并將它們與一個(gè)或多個(gè)應(yīng)用程序連接。 我們的API使您能夠:

  • 驗(yàn)證和授權(quán)用戶
  • 存儲(chǔ)有關(guān)您的用戶的數(shù)據(jù)
  • 執(zhí)行密碼和基于社交的登錄
  • 發(fā)送密碼重置消息
  • 發(fā)行基于API的Web應(yīng)用程序的API密鑰
  • 以及更多! 查看我們的產(chǎn)品文檔

簡而言之:我們使用戶帳戶管理變得更加輕松,安全和更多
可擴(kuò)展性比您可能習(xí)慣的高。

準(zhǔn)備開始了嗎? 在此處注冊免費(fèi)的開??發(fā)者帳戶。

啟動(dòng)您的Spring Boot項(xiàng)目

有您的Stormpath開發(fā)者帳戶? 大! 讓我們開始吧…

無論你是一個(gè)Maven 的Maven或搖籃克里特 ,讓您的項(xiàng)目設(shè)置是一個(gè)單元。

這是一個(gè)以pom.xml開頭的文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.stormpath.sample</groupId><artifactId>stormpath-spring-boot-spring-security-tutorial</artifactId><version>0.1.0</version><name>Spring Boot Spring Security Stormpath Tutorial</name><description>A simple Spring Boot Web MVC application with Spring Security and out-of-the-box login and self-service screens!</description><dependencies><dependency><groupId>com.stormpath.spring</groupId><artifactId>stormpath-default-spring-boot-starter</artifactId><version>1.0.RC6</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.3.0.RELEASE</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

而且,這是一個(gè)以以下內(nèi)容開頭的build.gradle文件:

buildscript {repositories {mavenCentral()}dependencies {classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.0.RELEASE")} }apply plugin: 'java' apply plugin: 'maven' apply plugin: 'spring-boot'group = 'com.stormpath' version = '0.1.0'repositories {mavenCentral() }dependencies {compile group: 'com.stormpath.spring', name: 'stormpath-default-spring-boot-starter', version:'1.0.RC6' }

您可能會(huì)注意到,對(duì)于Maven和Gradle來說,都存在一個(gè)依賴關(guān)系: stormpath-default-spring-boot-starter 。 對(duì)。 而已。 正如您將在下面看到的那樣,一個(gè)依賴項(xiàng)立即為您提供了所有的Spring Boot,Spring Security和Stormpath魔術(shù)。

收集您的API憑證和應(yīng)用程序參考

應(yīng)用程序和Stormpath之間的連接通過“ API密鑰對(duì)”進(jìn)行保護(hù)。 您將提供這些密鑰
到您的Web應(yīng)用程序,并且在與Stormpath通信時(shí)將使用它們。 您可以從管理控制臺(tái)下載API密鑰對(duì)。 登錄后,您可以從主頁下載API密鑰對(duì),它將下載apiKey.properties文件-我們稍后將使用它。

在管理控制臺(tái)中時(shí),您要獲取默認(rèn)Stormpath應(yīng)用程序的href。 在Stormpath中,Application對(duì)象用于將Web應(yīng)用程序鏈接到Stormpath中的用戶存儲(chǔ)。 所有新的開發(fā)人員帳戶都有一個(gè)名為“我的應(yīng)用程序”的應(yīng)用程序。 在管理控制臺(tái)中單擊“應(yīng)用程序”,然后單擊“我的應(yīng)用程序”。 在該頁面上,您將看到應(yīng)用程序的Href。 復(fù)制它-我們稍后將需要它。

編寫Spring Boot應(yīng)用程序

該部分的代碼可以在代碼庫的LockedDown標(biāo)記中找到。

我們需要三個(gè)小的Java類和一個(gè)html模板來啟動(dòng)Webapp的第一個(gè)版本。 它們足夠小,我會(huì)把它們放在這里。 讓我們開始吧!

Spring Boot應(yīng)用程序入口點(diǎn)

所有的Spring Boot應(yīng)用程序都有一個(gè)入口點(diǎn),其作用與普通的Java程序相同。 它具有main方法和所有內(nèi)容。

這是Application.java :

@SpringBootApplication public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} }

6行代碼(包括@SpringBootApplication批注)拉開了序幕。

Spring安全配置

默認(rèn)情況下(以及最佳安全實(shí)踐),Spring Security會(huì)鎖定整個(gè)應(yīng)用程序。 它將其鎖定到甚至無法訪問的地步! 盡管這符合最佳安全性實(shí)踐,但并不是很有用。 另外,我們需要將Spring Security和Stormpath掛鉤。 這將我們帶到我們的SpringSecurityWebAppConfig.java :

@Configuration public class SpringSecurityWebAppConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.apply(stormpath());} }

@Configuration注釋使Spring Boot將該類實(shí)例化為配置。 .apply(stormpath())將所有Stormpath優(yōu)點(diǎn)(身份驗(yàn)證和授權(quán)工作流程)掛接到Spring Security中。

因?yàn)閏onfigure方法中沒有進(jìn)一步的配置,所以我們?nèi)匀粫?huì)看到將所有內(nèi)容鎖定的默認(rèn)行為。 但是,我們將看到默認(rèn)的Stormpath流程,而不是默認(rèn)的Spring Security身份驗(yàn)證流程。 也就是說,嘗試瀏覽到應(yīng)用程序中的任何路徑將導(dǎo)致重定向到Stormpath login頁面。

因此,一個(gè)1行的方法調(diào)用就可以保證安全!

Spring WebMVC緊密聯(lián)系在一起

我們上面的安全性配置可確保保護(hù)應(yīng)用程序中的所有路徑。

控制器確定請求的路徑如何定向以顯示哪些模板。

這是我們的HelloController.java :

@Controller public class HelloController {@RequestMapping("/")String home() {return "home";} }

@Controller注釋@Controller Spring Boot這是一個(gè)控制器。 我們在第3行/上定義了一個(gè)路徑。 第5行返回Thymeleaf模板,命名為home 。

7行代碼,我們有模型-視圖-控制器(MVC)路由。

帶我們

默認(rèn)情況下,Thymeleaf模板引擎將在類路徑中名為templates的文件夾中查找從控制器返回的templates 。 它還將尋找.html的默認(rèn)擴(kuò)展名。

因此,當(dāng)上述控制器返回"home" ,Thymeleaf將在resources/templates/home.html找到模板。

讓我們看一下home.html文件:

<html 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, [[${account.fullName}]]!</h1><a th:href="@{/logout}" class="btn btn-danger">Logout</a></div></div></div></body> </html>

第1行為Thymeleaf設(shè)置了th名稱空間。

第3行看起來像html / xml注釋。 但是,這是Thymeleaf接受的指令,以在此模板中包含片段。 該片段位于: resources/templates/fragments/head.html 。 該片段包含所有要掛接到Bootstrap樣式中的視圖的設(shè)置。

第13和14行是操作所在的位置。 由于應(yīng)用程序中的每條路徑均已鎖定,因此我們知道進(jìn)入此頁面的唯一方法是登錄后。Stormpath的神奇之處在于,一旦登錄, account對(duì)象就始終在您的視圖范圍內(nèi)。 第13行顯示已登錄用戶的全名。 第14行提供了單擊后注銷的鏈接。

有關(guān)使用Thymeleaf模板的更多信息,請單擊此處 。

讓我們火起來!

創(chuàng)建一個(gè)Stormpath帳戶,15行Java代碼和19行HTML模板代碼(其中3行非常重要),使我們到達(dá)了受Spring Security保護(hù)并受Stormpath支持的功能齊全的Spring Boot WebMVC應(yīng)用程序的地步。

如果您以前將apiKey.properties文件存儲(chǔ)在標(biāo)準(zhǔn)位置: ~/.stormpath/apiKey.properties并且只有為您創(chuàng)建的默認(rèn)Stormpath應(yīng)用程序,則無需其他配置即可啟動(dòng)該應(yīng)用程序。

這是Maven的方式:

mvn clean package mvn spring-boot:run

注意:由于存在repackage執(zhí)行, spring-boot-maven-plugin還會(huì)創(chuàng)建一個(gè)uber-jar。 您可以通過運(yùn)行java來行使相同的代碼:

mvn clean package java -jar target/*.jar

這是Gradle的方式:

gradle clean build java -jar build/libs/*.jar

真? 是嗎 對(duì)!

您可以瀏覽到http:// localhost:8080 /并查看其運(yùn)行情況。

如果您將apiKey.properties文件存儲(chǔ)在其他位置,或者定義了其他Stormpath應(yīng)用程序怎么辦? 沒問題!

還記得您之前保存的Application Href嗎? 我們現(xiàn)在將使用它。

這是Maven的方式:

mvn clean package STORMPATH_API_KEY_FILE=~/.stormpath/apiKey.properties \ STORMPATH_APPLICATION_HREF=https://api.stormpath.com/v1/applications/4YHCurbtcaFC4TKKsd3AYQ \ mvn spring-boot:run

這是Gradle的方式:

gradle clean build STORMPATH_API_KEY_FILE=~/.stormpath/apiKey.properties \ STORMPATH_APPLICATION_HREF=https://api.stormpath.com/v1/applications/4YHCurbtcaFC4TKKsd3AYQ \ java -jar build/libs/*.jar

通過將STORMPATH_API_KEY_FILE和STORMPATH_APPLICATION_HREF環(huán)境變量添加到命令行,我們可以輕松地告訴我們的應(yīng)用程序在哪里可以找到api鍵以及要使用哪個(gè)Stormpath應(yīng)用程序。

Stormpath Java SDK具有極其靈活的配置機(jī)制。 當(dāng)我們開始限制Stormpath Group成員對(duì)您的應(yīng)用程序的訪問時(shí),我們將在下面看到更多內(nèi)容。

使用Spring Security完善的訪問控制

該部分的代碼可以在代碼庫的BasicAccessControl標(biāo)記中找到。

在上一節(jié)中,我們創(chuàng)建了一個(gè)緊密鎖定的應(yīng)用程序。 每個(gè)路徑(包括/ )都要求您首先登錄。

也許您想要一個(gè)可公開訪問的主頁。 也許您希望網(wǎng)站的某些部分可以被任何經(jīng)過身份驗(yàn)證的用戶訪問,而站點(diǎn)的另一部分則只能包含屬于特定組的成員。

我們將在本節(jié)中探索那些細(xì)粒度的控件。

我們將從允許公眾訪問主頁開始。 用戶仍然必須進(jìn)行身份驗(yàn)證才能訪問任何其他頁面。

Spring安全:門口的保鏢

還記得以前的空SpringSecurityWebAppConfig.java嗎? 我們現(xiàn)在將添加一些東西:

@Configuration public class SpringSecurityWebAppConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.apply(stormpath()).and().authorizeRequests().antMatchers("/").permitAll();} }

Spring Security提供了一個(gè)流暢的界面來提供訪問規(guī)則。

在上面的5-8行中,我們正在建立一個(gè)規(guī)則集,該規(guī)則集關(guān)于Spring Security如何允許訪問我們的應(yīng)用程序。

您可以用簡單的英語來表示:

Permit anyone to go to the front door Ensure that they've authenticated for anything else

我們指定的規(guī)則優(yōu)先于鎖定所有內(nèi)容的默認(rèn)行為。

讓我們也更新我們的home.html模板:

<html 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><!--/* displayed if account IS NOT null, indicating that the user IS logged in */--><div th:if="${account}"><h1 th:inline="text">Hello, [[${account.fullName}]]!</h1><a href="/restricted" class="btn btn-primary">Restricted</a><a th:href="@{/logout}" class="btn btn-danger">Logout</a></div><!--/* displayed if account IS null, indicating that the user IS NOT logged in */--><div th:unless="${account}"><h1>Who are you?</h1><a href="/restricted" class="btn btn-primary">Restricted</a></div></div></div></div></body> </html>

請注意,我們現(xiàn)在有兩個(gè)不同的部分。 第一個(gè)從第13行開始,如果用戶已登錄,則顯示第一個(gè)。

如果用戶未登錄,則顯示從第20行開始的第二部分。

這是正在運(yùn)行的Thymeleaf模板。 它提供了非常強(qiáng)大的控件,可有條件地顯示模板的各個(gè)部分。

在進(jìn)行任何其他更改之前,讓我們在這里暫停并像以前一樣啟動(dòng)應(yīng)用程序。

當(dāng)瀏覽到http:// localhost:8080時(shí) ,您將看到home模板的未經(jīng)身份驗(yàn)證的版本。

單擊“ Restricted按鈕,您將按預(yù)期重定向到login表單。 驗(yàn)證之后,您將進(jìn)入404頁面,因?yàn)槲覀兩形炊x受限頁面。

讓我們對(duì)其進(jìn)行設(shè)置以完成本節(jié)。

定義受限頁面就像在我們的控制器中添加路線并創(chuàng)建要顯示的模板一樣容易。 這是更新的HelloController.java :

@Controller public class HelloController {@RequestMapping("/")String home() {return "home";}@RequestMapping("/restricted")String restricted() {return "restricted";} }

并且,這是一個(gè)新的restricted.html模板:

<html 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">[[${account.fullName}]], You are allowed here.</h1><a href="/" class="btn btn-primary">Go Home</a></div></div></div></body> </html>

注意我們?nèi)绾沃匦率褂胔ead片段為該模板提供Bootstrap樣式。

再次重新啟動(dòng)該應(yīng)用程序,您將獲得完整的體驗(yàn)。 記下主頁如何更改,具體取決于您是否登錄。

通過組成員身份進(jìn)行Spring Security訪問控制

該部分的代碼可以在代碼存儲(chǔ)庫的GroupAccessControl標(biāo)記中找到。

Spring Security提供了一組注釋和一種豐富的表達(dá)語言,用于控制對(duì)應(yīng)用程序中方法的訪問。 @PreAuthorize是最常用的Spring Security批注。 并且,最常用的SpringEL表達(dá)式包括hasRole 。

Stormpath集成了將Stormpath組連接到Spring Security角色的機(jī)制。

讓我們看一下代碼,然后將其分解。 我們將添加一項(xiàng)新服務(wù),以限制組成員身份的訪問。 這是AdminService :

@Service public class AdminService {@PreAuthorize("hasRole(@roles.ADMIN)")public boolean ensureAdmin() {return true;} }

上面的第3行是關(guān)鍵。 注釋和SpringEL表達(dá)式可以用簡單的英語表示為:

Before this method is even entered, check to see that user is authenticated and is a member of the ADMIN group

check to see that user is authenticated的check to see that user is authenticated可能并不明顯。 發(fā)生的是, @PreAuthorize檢查只能在經(jīng)過身份驗(yàn)證的用戶上執(zhí)行。 Spring Security非常聰明,可以在檢查用戶是否是指定組的成員之前檢查用戶是否已登錄。

讓我們深入探討上面的Spring Expression Language。 Spring Security在哪里尋找@roles.ADMIN ? @符號(hào)是特殊的–它標(biāo)識(shí)Java Bean。 在這種情況下,一個(gè)名為roles的bean。 我們希望在該bean內(nèi)定義一個(gè)名為ADMIN的常量。

最終, hasRole需要檢查代表Stormpath Group的唯一Href。 因此,我們的ADMIN常數(shù)必須是一個(gè)Java String ,該String將Href保留到用于管理員的Stormpath組中。

為了完成此配置并使它具有Roles.java動(dòng)態(tài)性,我們需要一個(gè)名為Roles.java的新類:

@Component public class Roles {public final String ADMIN;@Autowiredpublic Roles(Environment env) {ADMIN = env.getProperty("stormpath.authorized.group.admin");} }

這9條線是如此強(qiáng)大,我在這里一覽無余! 讓我們深入。

通過在第1行用@Component注釋此類,Spring將實(shí)例化它并將其公開為bean。 猜猜豆子的名字是什么? Spring將采用該類的名稱,并以駝峰式大小寫以默認(rèn)情況下派生Bean名稱。 因此,bean的名稱是roles 。 甜!

第5行的@Autowired注釋使Spring Environment對(duì)象傳遞到構(gòu)造函數(shù)中。 在構(gòu)造函數(shù)內(nèi)部,由于ADMIN已被聲明為final ,因此我們唯一的機(jī)會(huì)是對(duì)其進(jìn)行設(shè)置-要求能夠在hasRoles子句中使用它。

難題的最后一部分利用了一些Stormpath配置魔術(shù)。 請注意,我們正在將ADMIN的值設(shè)置為名為stormpath.authorized.group.admin的環(huán)境屬性。 這是標(biāo)準(zhǔn)的Spring。 如果您的application.properties文件中有一個(gè)具有該名稱的屬性,那么它將在Spring Environment中可用。

Stormpath增加了將其設(shè)置為系統(tǒng)環(huán)境變量的能力,從而無需在應(yīng)用程序中的任何位置硬編碼該值(在這種情況下為Stormpath Group Href)。

通常,系統(tǒng)環(huán)境變量全部為大寫字母,單詞之間用下劃線分隔。 Stormpath Java SDK自動(dòng)將這些系統(tǒng)變量轉(zhuǎn)換為小寫的點(diǎn)分表示法。

挖這個(gè):

STORMPATH_AUTHORIZED_GROUP_ADMIN=https://api.stormpath.com/v1/groups/1wcsYMUZhzytUH5GmdaFXC \ java -jar build/libs/spring-boot-spring-security-tutorial-0.1.0.jar

在后臺(tái),Stormpath會(huì)將STORMPATH_AUTHORIZED_GROUP_ADMIN系統(tǒng)環(huán)境變量轉(zhuǎn)換為stormpath.authorized.group.admin環(huán)境變量。 這將被我們上面的代碼處理。

! 誰想到只需幾行代碼就能實(shí)現(xiàn)這種魔力!

現(xiàn)在,我們需要將AdminService到我們的控制器。 這是我們更新的HelloController.java的相關(guān)部分:

@Controller public class HelloController {@AutowiredAdminService adminService;...@RequestMapping("/admin")String admin() {adminService.ensureAdmin();return "admin";} }

在第4行和第5行自動(dòng)連接AdminService 。請注意,在第11行,我們正在調(diào)用adminService.ensureAdmin方法。 如果已登錄的用戶ADMIN組中,則將生成403 (禁止)響應(yīng)。

最后的代碼整理工作是創(chuàng)建一個(gè)admin.html模板。 在與該帖子相關(guān)的代碼中,有一個(gè)簡單的admin.html模板,該模板顯示了格式正確的消息,確認(rèn)您確實(shí)是管理員。

現(xiàn)在,要查看實(shí)際效果,您需要在管理控制臺(tái)中進(jìn)行一些Stormpath內(nèi)務(wù)處理。

步驟如下:

  • 創(chuàng)建一個(gè)新的應(yīng)用程序

  • 為應(yīng)用程序創(chuàng)建一個(gè)名為“ admin”的新組

    • 在管理組中創(chuàng)建一個(gè)新帳戶

  • 不在管理員組中創(chuàng)建一個(gè)新帳戶

在與此帖子相關(guān)的代碼中,我還包括了一個(gè)方便的錯(cuò)誤頁面,因此,如果您不在admin組中,那么您將獲得格式正確的頁面,而不是默認(rèn)的403頁面。

讓我們來看看它的作用。 我們將像以前一樣啟動(dòng)該應(yīng)用程序,只是這一次我們將對(duì)在上一步中創(chuàng)建的新應(yīng)用程序和組使用在管理控制臺(tái)中找到的Href。

這是Maven的方式:

mvn clean package STORMPATH_API_KEY_FILE=~/.stormpath/apiKey.properties \ STORMPATH_APPLICATION_HREF=https://api.stormpath.com/v1/applications/4YHCurbtcaFC4TKKsd3AYQ \ STORMPATH_AUTHORIZED_GROUP_ADMIN=https://api.stormpath.com/v1/groups/1wcsYMUZhzytUH5GmdaFXC \ mvn spring-boot:run

這是Gradle的方式:

gradle clean build STORMPATH_API_KEY_FILE=~/.stormpath/apiKey.properties \ STORMPATH_APPLICATION_HREF=https://api.stormpath.com/v1/applications/4YHCurbtcaFC4TKKsd3AYQ \ STORMPATH_AUTHORIZED_GROUP_ADMIN=https://api.stormpath.com/v1/groups/1wcsYMUZhzytUH5GmdaFXC \ java -jar build/libs/spring-boot-spring-security-tutorial-0.1.0.jar

瀏覽到/admin頁面。

如果您以在Stormpath admin組(在我的情況下為micah+admin@stormpath.com)中創(chuàng)建的用戶身份登錄,則可以訪問管理頁面。 如果您以創(chuàng)建的用戶身份登錄,而該用戶不在Stormpath admin組中(在我的情況下為micah+user@stormpath.com),則將顯示禁止頁面。

無論您以誰身份登錄,都可以像我們之前設(shè)置的那樣訪問/restricted頁面。

包起來

好吧,我們在這里涵蓋了很多領(lǐng)域,不是嗎!

我們看到了如何保護(hù)單個(gè)頁面以及如何基于組中的成員資格來保護(hù)方法。

我們看到了如何在你的類,它擴(kuò)展應(yīng)用 Stormpath WebSecurityConfigurerAdapter定義不同的路徑訪問控制,以及利用Spring安全的@PreAuthorize注釋控制的更細(xì)的晶粒。

我們看到了Stormpath Java SDK管理環(huán)境配置屬性以為您的應(yīng)用程序提供高度靈活性而無需進(jìn)行任何硬編碼的幾乎神奇的方式。

Java SDK和Spring Boot集成中還有許多功能。 在此處查看深入的教程。

隨時(shí)隨地提供支持或親自給我 。

建筑物身份管理,包括身份驗(yàn)證和授權(quán)? 嘗試Stormpath! 我們的REST API和強(qiáng)大的Java SDK支持可以消除您的安全風(fēng)險(xiǎn),并且可以在幾分鐘內(nèi)實(shí)現(xiàn)。 注冊 ,再也不會(huì)建立auth了!

翻譯自: https://www.javacodegeeks.com/2016/06/simple-web-app-spring-boot-spring-security-stormpath-15-minutes.html

總結(jié)

以上是生活随笔為你收集整理的一个具有Spring Boot,Spring Security和Stormpath的简单Web应用程序-15分钟的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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