Toekn验证机制的java案例

本文介绍了如何在Java项目中实现Token验证机制,包括客户端和服务端的握手过程以及API调用时的Token使用。通过示例代码详细展示了从生成公钥私钥到创建和验证签名的过程,确保数据安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这几天因为项目的需求,我负责的项目需要跟另外一个项目的进行数据交互。在对接中我们就要考虑数据安全的问题。之前没有怎么接触过。这几天从网上搜了相关的资料,自己总结了一下,写了一个Demo,写的很粗糙,希望大家提提意见。
首先,得我说明一下,整个验证的流程:
1、第一次握手,客户端发向服务端发起请求,服务端生成公钥和私钥,保留私钥,返回公钥给客户端
2、第二次握手,客户端获取到公钥,用公钥将用户名和密码进行加密。同时客户端也生成一对钥匙,保留私钥,将公钥和加密后的用户名和密码传输给服务端,服务端用私钥解密用户名和密码。进行用户信息对比,如果对比成功。返回一个token(令牌)给客户端,同时,服务端保存用户和token的对应关系。
3、调用API,客户端获取token后,开始调用服务端的API,客户端把需要传递的参数和时间戳还有token,通过加密短发生成一个sign签名,传给服务端,服务端用同样的算法对明文加密后与sign进行对比,对比通过,返回成功标示。
代码如下:
客户端的握手操作代码:
这里写图片描述
服务端的握手代码:
这里写图片描述
这里写图片描述

客户端调用API:
这里写图片描述

服务端被调用的API:

这里写图片描述
这里写图片描述

代码下载地址:http://download.youkuaiyun.com/download/qq_35515521/9969602

### 在Spring中使用CorsRegistry配置CORS 为了在Spring应用中配置跨域资源共享(CORS),可以通过实现`WebMvcConfigurer`接口并重写`addCorsMappings`方法来完成。此方法接收一个`CorsRegistry`对象作为参数,该对象提供了向注册表添加映射的方法。 下面是一个具体的例子: ```java @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**") // 应用到所有 /api 开头的请求路径 .allowedOrigins("http://example.com", "https://anotherdomain.org") // 允许来自指定源的请求 .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 允许特定 HTTP 方法 .allowedHeaders("header1", "header2", "header3") // 允许自定义请求头 .exposedHeaders("header1", "header2") // 暴露给浏览器额外的响应头 .allowCredentials(true) // 是否支持凭证 .maxAge(3600); // 预检请求的结果缓存时间 (秒) } } ``` 这段代码展示了如何利用`CorsRegistry`来进行详细的 CORS 设置[^3]。这里指定了 `/api/` 下的所有 URL 可以被某些特定域名发起带有凭证的信息交互,并且限定了可使用的 HTTP 请求方式和头部字段等内容。 对于更复杂的场景,比如基于不同的端点有不同的 CORS 政策需求,则可以在同一个 `addCorsMappings()` 中多次调用 `addMapping()` 来分别设定不同路径下的规则。 当涉及到安全框架如 Spring Security 的时候,如果发现 CORS 配置不起作用,可能是因为 Spring Security 默认会覆盖掉全局级别的 CORS 设置。此时应该考虑调整 Spring Security 的配置逻辑或者按照官方文档指导的方式正确集成两者之间的协作关系[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值