在15分钟内使用Spring Boot和Spring Security构建一个Web应用程序

本教程演示如何在15分钟内使用Spring Boot和Spring Security配合Okta实现OAuth 2.0单一登录。您将创建一个带有注册和登录功能的Web应用,涵盖从设置Okta应用到基于组的权限访问控制的全过程。
摘要由CSDN通过智能技术生成

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。

开发人员知道,保护Web应用程序可能会很痛苦。 正确地做是很难的。 最糟糕的部分是“正确”是一个移动的目标。 安全协议会更改。 在依赖项中发现漏洞,并发布了补丁程序。 必须生成大量通常很复杂的样板代码。 在过去的十年中,软件即服务的范式激增了,尽管我喜欢和下一个开发人员一样重新发明轮子(因为显然,我会写得比他们雇用的yahoo更好),但是安全是一个领域在这里,我很乐意将这项工作分担给专家。 输入Okta。

在本教程中,您将使用Spring Boot来构建一个带有用户注册系统和登录系统的简单Web应用程序。 它具有以下功能:

  • 登录和注册页面
  • 密码重置工作流程
  • 根据组成员身份限制访问

下载Spring Boot Web App示例项目

您首先需要的是免费的Okta帐户。 如果您还没有,请访问developer.okta.com并注册!

接下来的事情是从GitHub下载本教程的示例项目。

git clone https://github.com/oktadeveloper/okta-spring-simple-app-example.git spring-app

该项目使用Gradle作为构建工具以及Thymeleaf模板系统。

运行初始Web应用

从GitHub存储库下载示例代码后,使用以下git命令git checkout tags/Start Start标记: git checkout tags/Start

目前,该应用程序尚未受到任何保护。 没有启用任何授权或身份验证(即使build.gradle文件中包含必需的依赖build.gradle )。 继续并运行示例,方法是打开一个终端,然后从项目根目录运行命令./gradlew bootRun ( bootRun命令是Gradle Spring Boot插件提供的任务,已添加到build.gradle中的build.gradle文件中。部分)。

在您喜欢的浏览器中导航到http://localhost:8080 ,您应该看到以下内容:

网络应用

如果您点击“受限”按钮:

网络应用

为您的Spring Boot + Spring Security Web App添加项目依赖项

项目依赖项在build.gradle文件中定义(请参见下文)。 这个文件中有很多事情要做,并且本教程不会尝试向您解释Gradle构建系统。 随时检查他们的文档。 我只想指出几件事。

首先,请注意,我们包括了okta-spring-boot-starter 。 该项目大大简化了Okta与Spring Boot应用程序的集成。 没有此启动程序,完全可以使用Okta和Spring Boot。 实际上,直到引入“组”和“角色”为止,两者之间的差异很小(主要涉及application.yml更改)。 但是,一旦您开始尝试集成组和角色,Okta Spring Boot Starter会节省大量代码。 如果您想更深入一点,请看一下Okta Spring Boot Starter GitHub项目

其余的依赖关系涉及Spring和Spring Boot。 您会注意到org.springframework.boot依赖项都没有版本号。 这是因为Spring io.spring.dependency-management Gradle插件完成了一些幕后魔术。 Spring Boot版本由build.gradle文件顶部附近的构建脚本属性springBootVersion设置。 基于此版本号,Spring依赖性管理插件可以确定要包括的依赖性版本。

我们还引入了org.springframework.boot Gradle插件,该插件添加了我们将用于运行应用程序的bootRun任务。

  • spring-boot-starter-securityspring-boot-starter-web是Spring Boot的核心依赖项。
  • 必须使用spring-security-oauth2-autoconfigure才能使用@EnableOAuth2Sso批注,该批注用于将OAuth和Single Sign-On挂接到我们的应用程序中。
  • spring-boot-starter-thymeleafthymeleaf-extras-springsecurity4引入了Thymeleaf模板系统,并将其与Spring Security集成。
buildscript {  
   ext {  
      springBootVersion = '2.0.5.RELEASE'  
  }  
   repositories {  
      mavenCentral()  
   }  
   dependencies {  
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")  
   }  
}  
  
apply plugin: 'java'  
apply plugin: 'eclipse'  
apply plugin: 'org.springframework.boot'  
apply plugin: 'io.spring.dependency-management'  
  
group = 'com.okta.springboot'  
version = '0.0.1-SNAPSHOT'  
sourceCompatibility = 1.8  
  
repositories {  
   mavenCentral()  
}  
  
dependencies {  
   compile('com.okta.spring:okta-spring-boot-starter:0.6.0')  
   compile('org.springfra
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值