使用Spring Boot和Spring Security验证JWT

对于我当前的项目,我将使用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错误:

截图-May-27-16-16-34

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

screenshot-at-may-27-16-25-02

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

截图-May-27-16-28-09

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

{"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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352769.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么查看linux文件夹下有多少个文件

ls | wc -w是查看有多少个文件及文件夹ls | wc -c这个查看目录下多少个文件. 使用wc命令 具体通过wc --help 可以查看。如:wc -l filename 就是查看文件里有多少行 wc -w filename 看文件里有多少个word。 wc -L filename 文件里最长的那一行是多少个字…

[转]xargs详解

为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别。为什么要用x…

计算机桌面图片怎么设置大小,怎么设置桌面壁纸大小

很多人都知道怎麽设置电脑桌面,可真正找到适合自己屏幕的可能很少,图片或大或小,小编为大家分享了设置桌面壁纸大小的方法,下面大家跟着小编一起来了解一下吧。设置桌面壁纸大小方法先查看自己电脑屏幕分辨率,方法&…

html5 clip,canvas中使用clip()函数裁剪方法

未使用裁剪绘制一个圆*{margin:0;padding:0;}html,body{width:100%;height:100%;overflow:hidden;background-color:#AFAFAF;}varcanvasdocument.getElementById(canvas),contextcanvas.getContext(2d);canvas.widthdocument.body.clientWidth;canvas.heightdocument.body.clie…

linux中管道符的简单使用

管道符,可以把两条命令连起来,具体来说有两种应用,如下: 1. 例如: ps aux | grep "media" 在 ps aux中的結果中查找media。 2. 例如: find . -name "*.cpp" | xargs grep "cl…

51 nod 1522 上下序列——序列dp

题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId1522 很好的思想。考虑从小到大一对一对填数,这样也能对它的大小限制做一些操作了。 因为从小到大,所以只能全填在左边、全填在右边、两边各填一个。记录左边填到了哪个位…

spring tiles_Spring MVC 3模板和Apache Tiles

spring tiles对于任何Web应用程序,有效的设计考虑因素是使用模板引擎(或工具),并且由于具有Spring的“可插拔”特性,集成模板机制(例如Apache Tiles)确实要容易得多。 在这篇简单的文章中&#…

流程图用计算机if怎么写,if语句流程图

使用if语句实现单分支、两分支和使用switch语句实现多分支的程序程序1、if 语句有下面三种情况。第一种,条件成立就做。不成立就不做。if (条件)程序endif第二种,条件成立做“程序一”,不成立做“程序二”。不管条件成不成立都做。if (条件)程…

CENTOS 7 踢用户_从零学ELK系列(三):Centos安装Docker(超详细图文教程)

CSDN博客地址(关注,点赞)人工智能推荐GitHub(Star,Fork,Watch)【前言】为了更加真实的模拟生产部署环境,不仅需要Linux环境支持,而且ELK需要在不同的机器上部署;再重新装几台虚拟机&…

boost开发指南

C确实很复杂,神一样的0x不知道能否使C变得纯粹和干爽? boost很复杂,感觉某些地方有过度设计和太过于就事论事的嫌疑,对实际开发工作的考虑太过于理想化。学习boost本身就是一个复杂度,有魄力在项目中广泛采用boost复杂…

打游戏提示计算机丢失,Windows7电脑运行某游戏提示“计算机丢失mxvcp120.dll”怎么办...

许多用户都很喜欢在windows7系统中玩一些游戏,而在玩游戏的时候难免碰上一些错误提示,比如最近有windows7系统用户发现在运行某款游戏的时候,提示“计算机丢失mxvcp120.dll”,导致无法继续玩游戏,要怎么解决呢&#xf…

如何开发一个可运维系统的一点体会

本文来自网易云社区作者:施勇我们在开发一个复杂系统的时候,常常会强调服务化、模块化、松散耦合等要求以达到高可用、高可靠及高性能等目的;比较少的人会考虑到系统的方便部署配置和运维,至少是在刚开始设计系统的时候很少考虑到…

工程勘察设计收费标准2002修订版_全过程工程咨询收费模式超全解析

国内全过程工程咨询试点方案中收费标准比较全过程工程咨询是近两年提出的新的工程建设组织模式,它的管理机制、运行方式还处于探索阶段。各试点省、市相继发布了全过程工程咨询试点工作方案,对全过程工程咨询收费问题进行了积极探索。笔者整理了部分省市…

Java / Web项目中的NPM模块Browser-Sync

Browser-Sync是一个方便的基于Node.js的NPM模块,可用于更快的Web开发。 浏览器同步可在许多设备之间同步文件更改和交互。 最重要的功能是实时重新加载。 我们也可以在Java / Web项目中使用Browser-Sync。 Cagatay Civici创造了一个伟大的 视频教程如何在PrimeFace…

设置vs2008代码区的背景色

编写程序、调试代码时,是不是感觉文字的白色背景有些刺眼呢?vs2008 给我们提供了改变背景色的功能。 依次展开:工具->选项->环境->字体和颜色,可以看到下图所示设置框。 首先,在图中标记的“显示项”一栏选择…

bzoj3277 串 (后缀数组+二分答案+ST表)

常见操作:先把所有串都连到一起,但中间加上一个特殊的符号(不能在原串中/出现过)作为分割 由于全部的子串就等于所有后缀的所有前缀,那我们对于每一个后缀,去求一个最长的前缀,来满足这个前缀在…

微型计算机实验报告温度控制,单片机、可编程控制器实验教学大纲.doc

单片机、可编程控制器实验教学大纲.doc单片机、可编程控制器实验教学大纲 一、实验课的性质与任务 本实验课是在学生学完单片机原理与应用课程之后,为巩固提高所学知识,而安排的一次综合设计实验。通过本实验使学生将所学的单片机硬件结构、工作原理、编…

电脑word在哪_Word论文里的公式怎么编辑?这4个小工具帮你一分钟搞定!

临近毕业时,不少小可爱都在为论文头秃!搜索并下载论文,论文排版,论文查重,这些我们之前已经写过相关文章啦!Tools指南推荐搜索论文论文排版论文查重论文网站今天,再来给大家分享一个写论文时经常…

RTree算法及介绍

空间索引是对存储在介质上的数据位置信息的描述,用来提高系统对数据获取的效率。GIS涉及的各种海量复杂数据存储于外存,如果对磁盘上的数据的位置不加以记录和组织,每查询一个数据项都要扫描整个数据文件,则这种访问磁盘的代价将严…

文件桌面跟计算机同步删除吗,电脑里桌面文件被不慎覆盖了如何恢?

2007-10-30如何恢复桌面图标不小心将某个程序的桌面Windows桌面图标是启动计算机一定程序或文档的开关,Windows桌面的图标分为两类:快捷图标和默认图标。快捷图标主要由应用程序安装时自动创建或计算机使用者人为创建,用一个从左下向右上斜指的小箭头来标…