【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、引入依赖

java 复制代码
<dependency>
	<groupId>com.auth0</groupId>
	<artifactId>java-jwt</artifactId>
	<version>3.4.0</version>
</dependency>

2、创建JWT

java 复制代码
JWT.create()

3、配置JWT

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

4、解析JWT

java 复制代码
//构建解密注册
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自动解析即可。

  • Jar打包

报错情况:

**解决办法:**注意看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

  • War打包
  1. pom.xml加入或修改:
bash 复制代码
<packaging>war</packaging>
  1. 启动类里面加入配置:
java 复制代码
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
相关推荐
数智化精益手记局36 分钟前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
带娃的IT创业者1 小时前
Bitwarden CLI 供应链攻击深度分析:当密码管理工具本身成为安全威胁
安全·npm·安全漏洞·cli·供应链攻击·bitwarden
企业架构师老王1 小时前
2026制造业安全生产隐患识别AI方案:从主流产品对比看企业级AI Agent的非侵入式落地路径
人工智能·安全·ai
国冶机电安装1 小时前
化工厂生产线设备安装:从工艺安全到系统联动的完整解析
安全
可观测性用观测云3 小时前
通过观测云敏感数据扫描能力保障数据安全合规
安全
yoyo_zzm3 小时前
Laravel6.x新特性全解析
java·spring boot·后端
源码宝4 小时前
基于 SpringBoot + Vue 的医院随访系统:技术架构与功能实现
java·vue.js·spring boot·架构·源码·随访系统·随访管理
2401_873479404 小时前
企业安全团队如何配合公安协查?IP查询在电子取证中的技术实践
tcp/ip·安全·网络安全·php
weixin_514253185 小时前
4-26联合训练 tmux
安全
byoass5 小时前
智巢AI知识库深度解析:企业文档管理从大海捞针到精准狙击的进化之路
开发语言·网络·人工智能·安全·c#·云计算