对于我当前的项目,我将使用Spring Boot设置REST API (最有可能使用BoxFuse运行)。 为了能够使用API​​端点,应用程序将检查传入的请求是否具有较早提供的有效JWT令牌 (由我信任的API服务提供)。
为了实现此功能,我想利用Spring Security,因为它与Spring Boot非常吻合。 在搜寻有关此组合的信息时,我遇到了一个很好地描述背景信息的网站 ,但没有提供使它运行所需的所有必要资源。 因此,经过更多调查和反复试验后,我终于找到了一个可行的解决方案。 请注意,在我的情况下,我仅需要验证传入的令牌,而无需创建或提供新的令牌。

示例的源代码可在此处在GitLab上找到。 该示例应用程序具有一个称为MainController的REST控制器。 启动应用程序后(通过运行Application .main方法),您可以使用以下地址访问REST端点: http:// localhost:8888 / hello?name = PalmApps 。 如您所见,如果在浏览器中尝试执行此操作,则会收到HTTP 401错误:

要访问端点,您将需要提供JWT令牌,以便可以通过JwtAuthenticationFilter进行访问 。 要生成有效令牌,请打开类JwtTokenGenerator的源并运行'main'方法,该方法将在控制台中打印令牌:

复制令牌并打开一个工具,您可以使用该工具发送HTTP请求,并将令牌添加到标头中,例如Postman :

有了令牌后,您将看到预期的输出:

{"id": 2,"content": "Hello, PalmApps!"
}

如果您通过POST请求访问端点http:// localhost:8888 / me (仍带有“ Authorization”标头),则将以JSON格式获取Principal对象的详细信息:

{"details": null,"authorities": [{"authority": "admin"}],"authenticated": true,"principal": {"username": "Pascal","token": "eyJhbGciOiJIUzUxMeJ9.eyJzdwIiOi....m72LpFADA","authorities": [{"authority": "admin"}],"password": null},"credentials": null,"name": "Pascal"
}

返回对象中的“主要”字段是我们的AuthenticatedUser 。 如果我们想从我们的JWT中获取更多信息,那么我们可以简单地将其添加到该对象中,并将其填充到JwtAuthenticationProvider中 。

翻译自: https://www.javacodegeeks.com/2016/05/validating-jwt-spring-boot-spring-security.html

使用Spring Boot和Spring Security验证JWT相关推荐

  1. chrome charset使用_使用JWT保护你的Spring Boot应用 Spring Security实战

    关键词 Spring Boot.OAuth 2.0.JWT.Spring Security.SSO.UAA 写在前面 最近安静下来,重新学习一些东西,最近一年几乎没写过代码.整天疲于奔命的日子终于结束 ...

  2. 使用JWT保护你的Spring Boot应用 - Spring Security实战

    使用JWT保护你的Spring Boot应用 - Spring Security实战 作者 freewolf 原创文章转载请标明出处 关键词 Spring Boot.OAuth 2.0.JWT.Spr ...

  3. Spring boot 整合Spring Security Jwt

    记录学习Spring boot 整合Spring Security Jwt 学习参考 – 慢慢的干货 https://shimo.im/docs/OnZDwoxFFL8bnP1c/read 首先创建S ...

  4. Angular 6集成Spring Boot 2,Spring Security,JWT和CORS

    主要内容:Spring Boot 2的基础应用.CORS配置.Actuator监控:Spring Boot集成springfox-swagger,利用Swagger生成JSON API文档,利用Swa ...

  5. 使用Spring Boot 2通过OAuth2和JWT进行集中授权

    本指南逐步介绍了使用Spring Boot 2创建集中式身份验证和授权服务器的过程,还将提供演示资源服务器. 如果您不熟悉OAuth2,建议您阅读此书. 先决条件 JDK 1.8 文本编辑器或您喜欢的 ...

  6. spring boot整合spring security笔记

    最近自己做了一个小项目,正在进行springboot和spring Security的整合,有一丢丢的感悟,在这里分享一下: 首先,spring boot整合spring security最好是使用T ...

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

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

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

    建筑物身份管理,包括身份验证和授权? 尝试Stormpath! 我们的REST API和强大的Java SDK支持可以消除您的安全风险,并且可以在几分钟内实现. 注册 ,再也不会建立auth了! 更新 ...

  9. Spring boot 2.0 with Oauth2 + Jwt

    2019独角兽企业重金招聘Python工程师标准>>> Spring boot 2.0 with Oauth2 + Jwt 在这篇文章中: Netkiller Spring Clou ...

  10. 认证与授权流程与spring boot整合 spring security(1)

    一   spring security 1.1 spring security的作用 Spring Security所解决的问题就是安全访问控制,而安全访问控制功能其实就是对所有进入系统的请求进行拦截 ...

最新文章

  1. php中处理xml文件的类 simpleXML
  2. dede扩展数据类型_数据类型,扩展
  3. Web APi之控制器创建过程及原理解析(八)
  4. post和get提交中文数据的转码问题
  5. 透明轮播原生JavaScript实现
  6. C语言指针学习(续)
  7. 消息称苹果、Epic开庭时间从2021年7月提前至5月份
  8. typora使用pandoc导出功能
  9. [渝粤教育] 厦门理工学院 模拟电子技术实验 参考 资料
  10. RocketMQ 常见异常处理
  11. ASP.NET 2.0下实现匿名用户向注册用户的迁移(上) zhuan
  12. VC++实现快速截屏
  13. 终结者2免费教程_如何在模拟器上玩(匹配的还是手机服)_适用最新客户端
  14. retinex(SSR,MSR,MSRCR)的优缺点
  15. 美术☀️PR去掉视频黑边、旋转视频、减小视频体积、设置视频封面
  16. mysql redo查看_mysql redo
  17. linux查看隐藏大文件夹,Linux系统隐藏文件/文件夹操作教程
  18. Keil看不见头文件
  19. 解决Pycharm挂代理后依旧插件下载慢
  20. python pitfall (陷阱)--不同平台os模块文件名排序

热门文章

  1. Java_io体系之CharArrayReader、CharArrayWriter简介、走进源码及示例——13
  2. 一道丧心病狂的java面试题
  3. IntegerCache的妙用和陷阱
  4. vue中父组件怎么调用子组件
  5. 三班的孩子们,你们现在还好吗?
  6. MyBatis中Mapper代理方式
  7. 2020蓝桥杯省赛---java---A---4(七段码)
  8. php事件编程,PHP相应button中onclick事件的案例分析
  9. centos8启动docker-mysql8容器
  10. openfire log4j:ERROR setFile(null,true) call failed.