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

电商网站建设浩森宇特.net做网站的方式

电商网站建设浩森宇特,.net做网站的方式,网站信息内容建设管理,网站内容管理规范api平台接口调用,需要通过签名去核对是不是有效的用户,,一般会给两个key,acceeKey 和 secretKey,第一个相当于用户名,第二个相当于密钥,,,前端通过一定的算法,&#xff0…

api平台接口调用,需要通过签名去核对是不是有效的用户,,一般会给两个key,acceeKeysecretKey,第一个相当于用户名,第二个相当于密钥,,,前端通过一定的算法,,将内容和密钥 生成一个签名,,,
后端再根据 内容和密码,生成一个签名,,, 比对这两个签名是否一致,如果一致就是正常用户

这样也不安全,,别人可能会重发你的请求,,盗用你的签名一直刷你的请求,,,
设置一个nonce:唯一字符串,,请求一次记录一次,保证不重复,,但是只设置一个nonce服务器压力会很大,,设置一个timestamp 来筛选掉前后五分钟的请求,


package com.cj.apiclient;import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import com.cj.apiclient.model.User;import java.util.HashMap;
import java.util.Map;
import java.util.UUID;/*** @author cc* @date 2025-04-04 21:05**/public class ApiClient {private String baseUrl = "http://localhost:8080";private String accessKey;private String secretKey;public ApiClient(String accessKey, String secretKey) {this.accessKey = accessKey;this.secretKey = secretKey;}public String getUsernameByGet(User user){String json = JSONUtil.toJsonStr(user);HttpResponse httpResponse = HttpRequest.get(baseUrl + "/user/get").addHeaders(getHeaderMap(json)).execute();String body = httpResponse.body();return body;}private Map<String, String> getHeaderMap(String body) {Map<String, String> map = new HashMap<>();map.put("accessKey", accessKey);map.put("nonce", UUID.randomUUID().toString());map.put("timestamp", System.currentTimeMillis() + "");map.put("body",body);map.put("sign",StringUtils.genSign(body,secretKey));return map;}
}
public class StringUtils {public static String genSign(String body,String secretKey){Digester md5 = new Digester(DigestAlgorithm.MD5);String content = body+"."+secretKey;return md5.digestHex(content);}
}
  @GetMapping("/user/get")public String getUsernameByGet(User user, HttpServletRequest request){String accessKey = request.getHeader("accessKey");String body = request.getHeader("body");// 判断时间戳是否在前后五分钟之内String timestamp = request.getHeader("timestamp");// 判断随机数是否使用过,,可以使用redis的ttlString nonce = request.getHeader("nonce");String sign = request.getHeader("sign");String s = StringUtils.genSign(body, "123");if (!s.equals(sign)){throw new RuntimeException("签名错误");}return "hehe";}
springboot自定义starter

自动配置的包,加了之后写配置文件,有自动提示

       <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency>

自定义starter,相当于配置了一个带默认属性的bean,,在META-INF文件夹下面添加spring.factories文件,将配置类写进去:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.cj.apiclient.ApiClientConfig

遇到的问题,默认属性写在appilication.properites不生效,,写在application.yml中生效

http://www.dtcms.com/wzjs/794918.html

相关文章:

  • 网站优化内容有哪些ftp给网站做备份
  • 外贸网站和企业网站WordPress腾讯云cos存储插件
  • app和网站开发人员工作职责昌平网站制作公司
  • 浙江三建建设集团有限公司网站网站备案号在哪
  • 网站建设网站制作网页网站建设不用虚拟主机
  • 简单的电子商务网站主页设计图苏州公司网站设计
  • 大连seo网站改版的seo注意事项
  • 台州网络建站模板哪个购物平台最好
  • 十堰网站建设多少钱网站为什么续费
  • 东莞网站建设培训学校网站优化方案书
  • 怎么做logo网站手机虚拟空间
  • 网站备案拍照点建设网站的虚拟主机在哪里买
  • 如何提高网站收录数wordpress好学吗
  • 小型网站开发制作网页的
  • 网站备案名可以更改吗网页编辑模式怎么打开
  • 淘宝官方网站登录页面哪个网站可以兼职做效果图
  • 网络销售型网站有哪些个人发布信息免费推广平台
  • 老哥们给个手机能看的2020seo哪个软件好
  • 网站首页轮播图怎么做的wordpress英文主题破解版
  • 温州网站维护工作手机版oa办公软件
  • 免费做网站. 优帮云做哪些网站可以赚钱的
  • 湖南建设厅官方网站x域名免费网站
  • 怎么才能访问自己做的网站模版网站有源代码吗
  • 做网站服务器电脑配置wordpress可以移动端
  • 网站建设项目及费用湖南长沙网络公司有哪些
  • 网站建设作品图片网站优化推广是什么
  • 网站内容优化方法有哪些内容四平网站seo
  • 山东省住房建设厅网站网站意识形态建设
  • 网站改版建议书建站公司有哪些服务
  • 杭州市建设银行网站松岗网站建设