当前位置: 首页 > news >正文

免版权费自建网站设计页面跳转

免版权费自建网站,设计页面跳转,建设网站如何盈利,三合一网站建设多少钱rest api如何创建“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕#xff1f; 尝试使用Okta API进行托管身份验证#xff0c;授权和多因素身份验证。 “如果有用#xff0c;它将被修改。” 那些智慧的话来自我的QA老师… rest api如何创建 “我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕 尝试使用Okta API进行托管身份验证授权和多因素身份验证。 “如果有用它将被修改。” 那些智慧的话来自我的QA老师他们解释说只要对某人有用并且只要它有用所有软件都会发展。 我们都知道这一点。 用户每天都要求我们提供新功能错误修复和域逻辑更改。 随着任何项目尤其是整体项目的增长它可能开始变得难以维护并且任何新项目的进入门槛都将越来越高。 在本教程中我很高兴引导您构建安全的Spring REST API该API试图使用微服务架构来解决其中的一些难点。 在微服务架构中您在逻辑上将应用程序划分为多个应用程序这些应用程序可以更轻松地维护和扩展使用不同的堆栈并支持更多并行工作的团队。 但是微服务是解决每个扩展和维护问题的简单解决方案。 微服务还提出了许多必须解决的架构挑战 这些服务如何通信 通信故障和可用性应如何处理 如何在服务之间跟踪用户的请求 而且您应该如何处理用户授权才能访问单个服务 让我们深入研究并了解在构建Spring REST API时如何应对这些挑战。 使用OAuth 2.0保护Spring REST API的安全 在OAuth 2.0中 资源服务器是一种旨在处理域逻辑请求的服务并且没有任何类型的登录工作流程或复杂的身份验证机制资源服务器接收预先获得的访问令牌该令牌可确保用户具有访问服务器的授权权限并提供预期的响应。 在本文中您将使用Spring Boot和Okta构建一个简单的Resource Server 以演示它的简单性。 您将实现一个简单的资源服务器 该服务器将接收并验证JWT令牌 。 将资源服务器添加到Spring REST API 本示例使用Okta处理所有身份验证过程。 您可以注册一个永久免费的开发者帐户 该帐户使您可以创建所需的任意数量的用户和应用程序。 我已经设置了一些东西所以我们可以轻松上手。 请克隆以下资源存储库并转到startup标记如下所示 git clone -b startup https://github.com/oktadeveloper/okta-secure-spring-rest-api-example secure-spring-rest-api cd secure-spring-rest-api 该项目具有以下结构 $ tree . . ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src├── main│ ├── java│ │ └── net│ │ └── dovale│ │ └── okta│ │ └── secure_rest_api│ │ ├── HelloWorldController.java│ │ ├── SecureRestApiApplication.java│ │ └── SecurityConfig.java│ └── resources│ └── application.properties└── test└── java└── net└── dovale└── okta└── secure_rest_api└── SecureRestApiApplicationTests.java14 directories, 9 files 我使用出色的Spring Initializr并添加了Web和Security依赖关系来创建它。 Spring Initializr提供了一种简单的方法来创建具有一些常见的自动发现的依赖关系的新Spring Boot服务。 它还会添加Maven包装程序 因此您使用命令mvnw而不是mvn 该工具将检测您是否具有指定的Maven版本如果没有则将下载并运行指定的命令。 有趣的事实 您知道Maven包装器最初是由Okta自己的Brian Demers创建的吗 文件HelloWorldController是一个简单的RestController 它输出“ Hello World”。 在终端中您可以运行以下命令并查看Spring Boot启动 mvnw spring-boot:run 提示如果该命令不适合您请尝试使用./mvnw spring-boot:run代替。 完成加载后您将准备好REST API并设置为向您传递光彩的Hello World消息 curl http://localhost:8080/ Hello World 提示默认情况下 curl命令对于Windows用户不可用。 您可以从这里下载。 现在您需要正确创建一个受保护的资源服务器 。 设置OAuth 2.0资源服务器 在Okta仪表板中创建Service类型的应用程序它表示资源服务器没有登录页面或任何获取新令牌的方式。 点击下一步 输入您的服务名称然后点击完成 。 您将看到与以下屏幕类似的屏幕。 复制并粘贴您的客户端ID和客户端密钥以供以后使用。 当您配置应用程序时它们将非常有用。 现在让我们编写一些代码 编辑pom.xml文件并添加Spring Security和Okta的依赖项。 它们将启用您需要的所有Spring AND Okta OAuth 2.0功能 !-- security - begin -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId /dependency dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-oauth2/artifactId /dependency dependencygroupIdcom.okta.spring/groupIdartifactIdokta-spring-boot-starter/artifactIdversion0.6.1/version /dependency !-- security - end -- 通过简单地添加此依赖关系您的代码将像没有钥匙的锁屋。 在向用户提供密钥之前没有人可以访问您的API。 再次运行以下命令。 mvnw spring-boot:run 现在尝试访问Hello World资源 curl http://localhost:8080/ {timestamp:2018-11-30T01:35:30.0380000,status:401,error:Unauthorized,message:Unauthorized,path:/}将Spring Security添加到您的REST API Spring Boot具有很多类路径魔术并且能够发现并自动配置依赖项。 既然您已经添加了Spring Security它将自动保护您的资源。 现在您需要配置Spring Security以便可以正确地验证请求。 注意如果您遇到困难可以在Git分支step-1-security-dependencies检查修改。 为此您需要按以下方式修改application.properties 使用Okta仪表板提供给应用程序的client_id和client_secret okta.oauth2.issuerhttps://{yourOktaDomain}/oauth2/default okta.oauth2.clientId{clientId} okta.oauth2.clientSecret{clientSecret} okta.oauth2.scopesopenid Spring Boot使用注释和代码来配置您的应用程序因此您无需编辑超级无聊的XML文件。 这意味着您可以使用Java编译器来验证您的配置 我通常在不同的类中创建配置每个类都有其自己的用途。 创建类net.dovale.okta.secure_rest_api.SecurityConfig 如下所示 package net.dovale.okta.secure_rest_api;import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;EnableWebSecurity EnableResourceServer public class SecurityConfig {} 请允许我解释这里的注释的作用 EnableWebSecurity –告诉Spring我们将使用Spring Security提供Web安全机制 EnableResourceServer –方便的批注可通过OAuth 2.0令牌启用请求身份验证。 通常您会提供一个ResourceServerConfigurer bean但是Okta的Spring Boot启动器很方便地为您提供了一个。 而已 现在您拥有了一个完全配置且受保护的Spring REST API而没有任何样板 再次运行Spring Boot并使用cURL进行检查。 mvnw spring-boot:run # in another shell curl http://localhost:8080/ {error:unauthorized,error_description:Full authentication is required to access this resource} 消息改变了但是您仍然无法访问...为什么 因为现在服务器正在等待带有有效令牌的authorization 标头 。 在下一步中您将创建一个访问令牌并使用它来访问您的API。 注意如果有任何疑问请检查Git分支step-2-security-configuration 。 在您的Spring REST API中生成令牌 那么……您如何获得令牌 资源服务器不负责获取有效的凭证它只会检查令牌是否有效并继续执行方法。 一种使用OpenID Connect debugger /实现令牌以生成令牌的简单方法。 首先您需要在Okta中创建一个新的Web应用程序 将登录重定向URI字段设置为https://oidcdebugger.com/debug并将Grant Type允许为Hybrid 。 单击“完成”然后复制客户端ID以进行下一步。 现在在OpenID Connect网站上如下图所示填写表单不要忘记为您最近创建的Okta Web应用程序填写客户端ID 提交表单以启动身份验证过程。 如果您尚未登录则将收到Okta登录表单否则您将在下面看到带有自定义令牌的屏幕。 令牌的有效期为一小时因此您可以使用API​​进行大量测试。 使用令牌很简单只需将其复制并修改curl命令即可使用它如下所示 export TOKEN${YOUR_TOKEN}curl http://localhost:8080 -H Authorization: Bearer $TOKEN Hello World添加OAuth 2.0范围 OAuth 2.0范围是一项功能可让用户决定是否将授权该应用程序进行限制。 例如您可能具有“读取”和“写入”范围。 如果应用程序需要写入范围则应询问用户该特定范围。 这些可以由Okta的授权服务器自动处理。 作为资源服务器它可以具有不同的端点每个端点具有不同的范围。 接下来您将学习如何设置不同的范围以及如何对其进行测试。 向您的SecurityConfig类添加一个新注释 EnableWebSecurity EnableResourceServer EnableGlobalMethodSecurity(prePostEnabled true) public class SecurityConfig {} 新EnableGlobalMethodSecurity(prePostEnabled true)注解告诉Spring使用AOP样方法的安全性和prePostEnabled true使前 后的注释。 这些注释将使我们能够以编程方式为每个端点定义安全性。 现在对HelloWorldController.java进行更改以创建一个受范围保护的端点 import org.springframework.security.access.prepost.PreAuthorize; import java.security.Principal; ... PreAuthorize(#oauth2.hasScope(profile)) GetMapping(/protected/) public String helloWorldProtected(Principal principal) {return Hello VIP principal.getName(); } 注意PreAuthorize(#oauth2.hasScope(profile)) 。 它说在运行此方法之前请验证请求是否具有指定范围的授权。 #oauth2位由OAuth2SecurityExpressionMethods Spring类添加请检查其他可用方法并通过spring-cloud-starter-oauth2依赖关系添加到您的类路径中。 好 重新启动后您的服务器将准备就绪 使用您当前的令牌向端点发出新请求 curl http://localhost:8080/protected/ -H Authorization: Bearer $TOKEN {error:access_denied,error_description:Access is denied} 由于您的令牌没有所需的范围因此您会收到一条access is denied消息。 要解决此问题请回到OIDC调试器并添加新的作用域。 使用新获得的令牌重试 curl http://localhost:8080/protected/ -H Authorization: Bearer $TOKEN Hello VIP raphaeldovale.net 而已 如果您有任何疑问请检查最新的存储库分支finished_sample 。 提示由于profile是OAuth 2.0的常见范围因此您无需在授权服务器中进行任何更改。 需要创建自定义范围吗 请参阅此Java应用程序的简单令牌认证 。 了解有关Spring和REST API的更多信息 在本教程中您学习了如何使用Spring引导创建资源服务器并将其与OAuth 2.0无缝集成。 Spring和REST API都是巨大的主题有很多讨论和学习的内容。 本教程的源代码可在GitHub上找到 。 以下是一些其他文章可帮助您进一步了解Spring和REST API安全性 OAuth到底是什么 使用Spring Boot和OAuth 2.0进行安全的服务器到服务器通信 Spring Boot 2.1出色的OIDCOAuth 2.0和React式API支持 在15分钟内将用户身份验证添加到您的Spring Boot应用程序 “我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕 尝试使用Okta API进行托管身份验证授权和多因素身份验证。 创建安全REST API最初于2018年12月18日发布在Okta开发人员博客上。 翻译自: https://www.javacodegeeks.com/2019/01/create-secure-spring-rest-api.htmlrest api如何创建
http://www.zqtcl.cn/news/168080/

相关文章:

  • 网站建设工程师的职位要求化妆品行业网站开发
  • 做海报有什么素材网站知乎什么样的蓝色做网站做好看
  • 餐饮网站建设网站wordpress优酷视频插件下载
  • 什么网站做广告效果好wordpress中文cms
  • seo与网站优化广州洲聚网站开发
  • 建一个自己用的网站要多少钱北京网站建设价格天
  • 免费做婚礼邀请函的网站如何设定旅游网站seo核心关键词
  • 网上做问卷调查赚钱哪些网站好全flash网站制作
  • 个人网站备案核验单填写wordpress登录安全插件下载
  • 拖拽做网站cms系统设计
  • 村建站什么部门网站建设步骤图
  • 移动端网站建设的意义中工信融网站建设
  • 网站设计宽屏尺寸盐城网站建设渠道合作
  • 网站所有者查询hexo做网站
  • 杭州专业网站设计策划大数据网站建设和
  • 建一个自己的网站需要多少钱泰州网站快速排名优化
  • 企业网站的建设企业湖南网络推广
  • 山西省建设厅投诉网站郴州新网交友手机版
  • 营销网站建设是什么flash个人网站欣赏
  • 网站建设最简单的教程视频教程建设厅注册中心网站首页
  • 免费做网站凡科wordpress 分享到微信 插件
  • 购物网站项目建设内容有啥网站是专做时尚穿搭
  • 网上下载的网站模板怎么用wordpress 注册密码
  • 网站建设免费国外撤销网站备案申请书
  • 佛山做网站那家好网站建设公司如何盈利
  • 傻瓜建网站设计感网站
  • 北京网站优化软件陕西省建筑信息平台
  • 广州越秀建网站济南房产网新开楼盘
  • 线上咨询预约网站建设方案保定外贸网站制作
  • 网站流量如何增加提高工作效率的措施