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

详细介绍:【040-安全开发篇】JavaEE应用SpringBoot框架JWT身份鉴权打包部署JARWAR

详细介绍:【040-安全开发篇】JavaEE应用&SpringBoot框架&JWT身份鉴权&打包部署JAR&WAR

思维导图

在这里插入图片描述
在这里插入图片描述

知识点:

1、JavaEE-SpringBoot-身份鉴权-JWT技术
2、JavaEE-SpringBoot-打包部署-JAR&WAR

章节点

3、Java:
功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方组件使用等.
框架库:MyBatis,SpringMVC,SpringBoot,Shiro,Log4j,FastJson等
技术:Servlet,Listen,Filter,Interceptor,JWT,AOP,反射机制待补充
安全:SQL注入,RCE执行,反序列化,脆弱验证,未授权访问,待补充
安全:原生开发安全,第三方框架安全,第三方组件安全等,架构分析,待补充

演示案例

SpringBoot-身份鉴权-JWT技术
SpringBoot-打包部署-JAR&WAR

SpringBoot-身份鉴权-JWT技术

JWT(JSON Web Token)是由服务端用加密算法对信息签名来保证其完整性和不可伪造;
Token里可以包含所有必要信息,这样服务端就无需保存任何关于用户或会话的信息;
JWT用于身份认证、会话维持等。由三部分组成,header、payload与signature。
类似这些↓
在这里插入图片描述

懂开发的一般会使用jwt而不是使用类似cookie或者session等技术,当然现在也有新的技术,是我们以后的发展方向(不过jwt仍是流行的身份鉴权技术之一)

  1. 浏览器发送携带用户名和密码post请求到服务端。
  2. 服务器端创建带有JWT凭证信息。
  3. 返回jwt给浏览器
  4. 浏览器发送JWT想访问要授权的页面
  5. 服务器检查浏览器端的jwt,从JWT获取其中的用户信息。
  6. 发送响应给客户端。在这里插入图片描述

参考:https://blog.csdn.net/weixin_62091520/article/details/149971250我精挑细选过的文章,不错的
实践部分

mvnrepository仓库,选择组件的时候选有漏洞(别选最新的),进行复现。
1、引入依赖

<dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.4.0</version></dependency>

2、创建JWT

JWT.create()

3、配置JWT

JWT.create()
//header
.withHeader(map)
//payload
.withClaim("userid",id)
.withClaim("username",user)
.withClaim("password",pass)
//signature
.sign(Algorithm.HMAC256("xiaodisec"));

4、解析JWT

//构建解密注册
JWTVerifier jwt = JWT.require(Algorithm.HMAC256("xiaodisec")).build();
//解密注册数据
DecodedJWT verify = jwt.verify(jwtdata);
//提取解密数据
Integer userid = verify.getClaim("userid").asInt();

5、安全问题
参考:https://blog.csdn.net/zz12345600354/article/details/139166880同样是我挑选

小迪上课使用的网站→JWT在线解码与生成

SpringBoot-打包部署-JAR&WAR

参考:https://mp.weixin.qq.com/s/HyqVt7EMFcuKXfiejtfleg
SpringBoot项目打包在linux服务器中运行:
①jar类型项目
jar类型项目使用SpringBoot打包插件打包时,会在打成的jar中内置tomcat的jar。
所以使用jdk直接运行jar即可,jar项目中功能将代码放到其内置的tomcat中运行。
②war类型项目
在打包时需要将内置的tomcat插件排除,配置servlet的依赖和修改pom.xml,
然后将war文件放到tomcat安装目录webapps下,启动运行tomcat自动解析即可。

报错情况:在这里插入图片描述
**解决办法:**注意看configuration这部分,把skip代码块改成false/删除,或加上mainClass代码块部分
在这里插入图片描述

报错解决:
https://blog.csdn.net/Mrzhuangr/article/details/124731024
https://blog.csdn.net/wobenqingfeng/article/details/129914639
1、maven-clean-package
2、java -jar xxxxxx.jar

  1. pom.xml加入或修改:
<packaging>war</packaging>
  1. 启动类里面加入配置:
public class TestSwaggerDemoApplication extends SpringBootServletInitializer
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(TestSwaggerDemoApplication.class);
}
  1. maven-clean-package
  2. war放置tomcat后启动

JAVAEE源码架构:
无源码下载泄漏风险基本不能直接从web下载到源码
源码泄漏也需反编译如果不小心你获得到了jar包的话,也需要反编译→直接压缩,然后将压缩文件在ide中打开。
↑只有class文件需要反编译才能得到.java文件

时间戳

  1. 文档讲解——00:00:00
  2. SpringBoot-打包部署-JAR&WAR——00:03:28
  3. SpringBoot-打包部署-JAR&WAR——1:04:07
  4. 安全开发篇的思维导图的绘制——1:27:01
http://www.jsqmd.com/news/262625/

相关文章:

  • 机械行业如何利用百度UE的JS截屏功能优化设计文档导入?
  • CSS盒子模型:网页布局的基石与艺术
  • 射频-驻波比的理解
  • Gemini CLI快速运维
  • Linux 基础开发工具详解(Yum, Vim, GCC, Make, GDB, Git) - 指南
  • 组合螺丝专业供应商靠谱吗,东层紧固件有哪些信任背书? - 工业品牌热点
  • 复合式分板机国内选哪个厂家的产品好? - 工业品牌热点
  • Godot Win32
  • 芯片制造企业网页如何集成百度开源上传组件实现文件夹上传?
  • 极端天气数据集 恶劣天气数据集 雾天道路行驶数据集 黑夜情境下的交通数据集 红绿灯检测数据集 疲劳驾驶检测数据集 交通路锥检测数据集 路面标识交通引导线 车道线检测数据集]
  • 14.2 去中心化协同与导航:基于LIVEPOINT框架的无死锁多机器人系统
  • 机械制造行业网页如何用html5实现文件夹上传?
  • 14.3 任务分配与协同操作:从市场拍卖到分布式优化的多机器人协作
  • 基于SpringBoot+Vue网络办公自动化系统的设计与实现
  • 15.1 机器人控制的伦理、安全与社会影响:技术成熟度伴随的责任审视
  • hadoop集群搭建 (超详细) 接入Impala、Hive,AI 大模型的数据底座 - 教程
  • 仓库管理软件哪个好用,有没有最简单的出入库系统
  • 15.2 技术融合与未来展望:AI、新材料与生物交叉驱动下的新形态与新能力
  • 研究生必看:导师让改AI率?这份超全攻略帮你顺利过关
  • skill-creator详细且实用的教程
  • 2010-2025年上市公司数字化迎合指标数据
  • 保姆级教程:5分钟学会用工具降低论文AIGC检测率
  • 2002-2024年上市公司供应链数字化转型数据+代码
  • 1985.1-2026.1世界各国经济政策不确定性指数
  • 知网AIGC检测标准更新后,这3款降AI工具依然有效
  • 【多无人机路径规划】基于K均值聚类与遗传算法的无人机路径规划,对任务区域进行划分,并优化每个区域内的访问路径研究(Matlab代码实现)
  • 【多无人机协同目标运输任务】多无人机协同目标运输任务中的路径规划与动态控制研究(Matlab代码实现)
  • py每日spider案例之music搜索接口
  • py每日spider案例之music搜索接口
  • 还没想好