适合初学者入门 Spring Security With JWT 的 Demo

举报
G-washington 发表于 2019/10/28 20:54:17 2019/10/28
【摘要】 Spring Security 是Spring 全家桶中非常强大的一个用来做身份验证以及权限控制的框架,我们可以轻松地扩展它来满足我们当前系统安全性这方面的需求。

Demo 地址:https://github.com/Snailclimb/spring-security-jwt-guide 。欢迎 star!

Spring Security 是Spring 全家桶中非常强大的一个用来做身份验证以及权限控制的框架,我们可以轻松地扩展它来满足我们当前系统安全性这方面的需求。

但是 Spring Security 相比于其他一些技术比如 JPA 来说更难上手,很多人初学的时候很难通过看视频或者文档发就很快能独立写一个 Demo 出来,于是后面可能就放弃了学习这个东西。

刚来公司的时候的入职培训实战项目以及现在正在做的项目都用到了 Spring Security 这个强大的安全验证框架,可以看出这个框架在身份验证以及权限验证领域可以说应该是比较不错的选择。由于之前经历项目的这部分模块都不是自己做的,所以对于 Spring Security 并不是太熟悉。于是自己抽时间对这部分知识学习了一下,并实现了一个简单的 Demo 。这个 Demo 主要用到了Spring Security和 Spring Boot这两门技术,并且所有的依赖采用的都是最新的稳定版本。初次之外,这个项目还用到了 JPA这门技术。项目代码结构如下(chrome插件:octree),整体还是比较清晰的,由于自己的能力以及时间有限,所以一定还有很多可以优化的地方,有兴趣的朋友可以一起完善,期待你的 PR。Demo 地址:https://github.com/Snailclimb/spring-security-jwt-guide。(前端代码采用 React 框架写的,目前只写了登录功能,后面完善之后也会开源出来。具体技术介绍以及详细实现过程和原理的解析会在国庆节期间更新出来。)

image.png

image.png

代码结构

下载配置

  1. git clone https://github.com/Snailclimb/spring-security-jwt-guide.git

  2. 打开项目并且等待Maven下载好相关依赖。建议使用idea 打开,并确保你的idea 下载了 lombok插件。

  3. 修改 application.properties 将数据库连接信息改成你自己的。

示例

1.注册一个账号

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1Register

2.登录

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1Login

3.使用正确Token访问需要进行身份验证的资源

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1Access resources that require authentication

4.不带Token访问需要进行身份验证的资源

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1Access resources that require authentication without token

5.使用不正确Token访问需要进行身份验证的资源

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1Access resources that require authentication with not correct token


推荐阅读

消灭 Java 代码的“坏味道”

彻底理解Cookie,Session,Token

架构设计--互联网架构演化

值得开发者关注的 Java 8 后时代的语言特性

【原创】关于Spring中的参数校验的一点思考

Spring常见问题总结(补充版)

分布式ID生成方案总结

入职一个月的职场小白,谈谈自己这段时间的感受

Code Review最佳实践

后端开发必备的 RestFul API 知识

技术面试复习大纲

如何给老婆解释什么是RPC

干货收藏 | Java程序员必备的一些流程图

十分钟搞懂Java效率工具Lombok使用与原理

看完这篇文章,别说自己不会用Lambda表达式了!

一些有助于你拿Offer的文章

面试官:“谈谈Spring中都用到了那些设计模式?”。

本文转载自微信公众号JavaGuide

原文链接:https://mp.weixin.qq.com/s/tggAtWyvGQHKgzh2fXVfIw

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。