标题

Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(一)

技术

Spring Boot 2、Spring Security 5、JWT

运行环境

IDEA+JDK8.0+MySQL5.0+

简述

Spring Boot 2 + Spring Security 5 + JWT 实现给RestApi增加认证控制

测试流程

下面对我们的程序进行简单的验证

1.请求获取用户列表接口:http://localhost:8080/users/userList接口,会收到401错误

{

"timestamp": 1567564486909,

"status": 401,

"error": "Unauthorized",

"message": "Full authentication is required to access this resource",

"path": "/users/userList"

}

curl http://localhost:8080/users/userList

原因就是因为这个url没有授权,所以返回401

2.注册一个新用户

curl -H "Content-Type: application/json" -X POST -d '{

"username": "admin",

"password": "password"

}' http://localhost:8080/users/signup

3.登录,会返回token,在http header中,Authorization: Bearer 后面的部分就是token

curl -i -H "Content-Type: application/json" -X POST -d '{

"username": "admin",

"password": "password"

}' http://localhost:8080/login

温馨提醒:这里的login方法是spring specurity框架提供的默认登录url

4.用登录成功后拿到的token再次请求/users/userList接口

4.1将请求中的XXXXXX替换成拿到的token

4.2这次可以成功调用接口了

curl -H "Content-Type: application/json"

-H "Authorization: Bearer XXXXXX"

"http://localhost:8080/users/userList"

5.设置了1分钟后Token过期,如果1分钟后再次请求/users/userList接口返回Token过期的异常提示如下图:

6.集成Swagger-ui,方便前后端分离开发,默认访问地址:http://localhost:8080/swagger-ui.html







温馨提示:这里的登录接口还是使用的默认地址,如果你的token过期了,需要你重新登录生成新的token.

下载地址

https://gitee.com/micai-code/springboot-springsecurity-jwt-demo.git

结束语

在使用的过程中,如有问题,可以添加真正讨论技术的QQ交流群,QQ群号为:715224124

Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(一)的更多相关文章

  1. Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(二)

    Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(二) 摘要 上一篇https://javaymw.com/post/59我们已经实现了基本的登录和t ...

  2. spring jwt springboot RESTful API认证方式

    RESTful API认证方式 一般来讲,对于RESTful API都会有认证(Authentication)和授权(Authorization)过程,保证API的安全性. Authenticatio ...

  3. Spring Boot中使用Swagger2构建RESTful API文档

    在开发rest api的时候,为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题: 1.由于接口众多,并且细 ...

  4. Spring Boot中使用Swagger2生成RESTful API文档(转)

    效果如下图所示: 添加Swagger2依赖 在pom.xml中加入Swagger2的依赖 <!-- https://mvnrepository.com/artifact/io.springfox ...

  5. Spring Boot+Spring Security+JWT 实现 RESTful Api 权限控制

    摘要:用spring-boot开发RESTful API非常的方便,在生产环境中,对发布的API增加授权保护是非常必要的.现在我们来看如何利用JWT技术为API增加授权保护,保证只有获得授权的用户才能 ...

  6. Spring Boot (21) 使用Swagger2构建restful API

    使用swagger可以与spring mvc程序配合组织出强大的restful api文档.它既可以减少我们创建文档的工作量,同时说明内容又整合入现实代码中,让维护文档和修改代码整合为一体,可以让我们 ...

  7. 使用 Spring Boot 2.0 + WebFlux 实现 RESTful API

    概述 什么是 Spring WebFlux, 它是一种异步的, 非阻塞的, 支持背压(Back pressure)机制的Web 开发框架. 要深入了解 Spring WebFlux, 首先要了知道 R ...

  8. Spring Boot 无侵入式 实现RESTful API接口统一JSON格式返回

    前言 现在我们做项目基本上中大型项目都是选择前后端分离,前后端分离已经成了一个趋势了,所以总这样·我们就要和前端约定统一的api 接口返回json 格式, 这样我们需要封装一个统一通用全局 模版api ...

  9. 基于Spring Boot+Spring Security+JWT+Vue前后端分离的开源项目

    一.前言 最近整合Spring Boot+Spring Security+JWT+Vue 完成了一套前后端分离的基础项目,这里把它开源出来分享给有需要的小伙伴们 功能很简单,单点登录,前后端动态权限配 ...

随机推荐

  1. 2020重新出发,NOSQL,Redis的事务

    Redis的基础事务和常用操作 和其他大部分的 NoSQL 不同,Redis 是存在事务的,尽管它没有数据库那么强大,但是它还是很有用的,尤其是在那些需要高并发的网站当中. 使用 Redis 读/写数 ...

  2. 100个高频Spring面试题

    译   原文:https://www.javacodegeeks.com/2014/05/spring-interview-questions-and-answers.html A:Spring概览 ...

  3. 二.spring boot第一个web服务

    通过<一.spring boot初始化项目>我们已经会初始化spring boot项目,那本篇文章就说明下初始化项目的具体内容,并编写第一个Hello页面. 项目结构 mvnw.mvnw. ...

  4. leetcode刷题-66加一

    题目 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: ...

  5. HTML-CSS-JS Prettify 代码格式化插件

    前提:已经安装 node.js.安装插件 HTML-CSS-JS Prettify,修改node路径,即可通过单击右键 HTML-CSS-JS Prettify 中的 Prettify Code 使用 ...

  6. 测试软件—禅道BUG管理工具

    入禅 目录 入禅 1.禅道的基本使用 1.禅道的基本使用 admin(管理员) 部门:创建部门(需求部门,开发部门,测试部门,项目部门,产品部门) 组织:创建用户(产品经理,项目经理,开发人员,测试人 ...

  7. SpringBoot-02-原理初探之主启动类

    2. 原理初探 2.1 pom.xml 父依赖 主要依赖一个父项目,主要管理项目的资源过滤和插件 <parent> <groupId>org.springframework.b ...

  8. 【JAVA】JAVA相关知识点收集

    下面这些链接都是我这段时间(7月-9月)看过的.感觉自己现在处于一个疯狂吸收知识的阶段,如果是文字的方式一点一点搬运到自己的博客既重复又费时间,只有等自己积累到一定程度后才能进行原创性高质量的产出吧. ...

  9. dubbo学习(三)配置dubbo API方式配置

    provider(生产者) import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.Pro ...

  10. 笨办法学Python3习题19

    学习笔记记录一下 def cheese_and_crackers(cheese_count, boxes_of_crackers): print (f"You have {cheese_co ...