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

上海市网站seo免费进入b站2022年更新

上海市网站seo,免费进入b站2022年更新,黄山网站建设jidela,网站开发 放大图片目录 1、apisix的hmac认证Authorization头信息 2、signature的lua生成源码 3、java生成签证的简单示例 4、postman调用如下 apisix的hmac-auth认证,介绍可以看官方文档 hmac-auth | Apache APISIX -- Cloud-Native API Gateway 照着官方文档,发现生…

目录

1、apisix的hmac认证Authorization头信息

2、signature的lua生成源码

3、java生成签证的简单示例

4、postman调用如下


apisix的hmac-auth认证,介绍可以看官方文档

hmac-auth | Apache APISIX® -- Cloud-Native API Gateway

照着官方文档,发现生成的签证根本调不通,所以研究了一下hmac-auth的生成源码,下面记录一下apisix的hmac需要怎么传参

1、apisix的hmac认证Authorization头信息

1.1hmac认证Authorization内容:


Signature signature="{具体签名}", keyId="{hmac的key}", algorithm="{hmac的算法}", headers="{需要生成签证的请求头}"


生成结果如下:
Signature signature="PpSL9rq26QtITXh33NhUpBJkNiskkkEDKKzFYqKKIC4=", keyId="a0f4cafbe86a43d5bcfdb7e97f32215b", algorithm="hmac-sha256", headers="date"

1.2参数介绍

algorithm:hmac支持的算法。具体可以看源码或者文档,只有几种,下面都是用的默认的算法HmacSHA256

headers:是说生成签名需要用的头信息,header里面的顺序也影响签名,具体签名生成见下文。下面介绍几个可能常用的header头。下面只是常用参数,还有一些别的head参数。验证了一下,不支持request-body这种不规范的

headers="date  @request-target"

date: GMT格式日期。  一般是搭配签证过期窗口使用的

@request-target:是一个特殊的字段,通常用于 HTTP 请求的签名生成。它表示请求的目标 URI(即请求的路径和查询参数),而不是请求头中的其他字段,可以理解成具有含义的常量,经常会用它判断逻辑

2、signature的lua生成源码

hmac-auth.lua文件,在验证的时候加了一下core.log.warn打印日志,获取一些中间结果

local function generate_signature(ctx, secret_key, params)
    local uri = ctx.var.request_uri
    local request_method = core.request.get_method()

    if uri == "" then
        uri = "/"
    end

    local signing_string_items = {
        params.keyId,
    }

    if params.headers then
        for _, h in ipairs(params.headers) do
            local canonical_header = core.request.header(ctx, h)
            if not canonical_header then
              if h == "@request-target" then
                local request_target = request_method .. " " .. uri
                core.table.insert(signing_string_items, request_target)
                core.log.warn("canonical_header name:", core.json.delay_encode(h))
                core.log.warn("canonical_header value: ",
                              core.json.delay_encode(request_target))
              end
            else
              core.table.insert(signing_string_items,
                                h .. ": " .. canonical_header)
              core.log.warn("canonical_header name1:", core.json.delay_encode(h))
              core.log.warn("canonical_header value1: ",
                            core.json.delay_encode(canonical_header))
            end
        end
    end

    local signing_string = core.table.concat(signing_string_items, "\n") .. "\n"
core.log.warn("======signing_string签证:", signing_string)
    return hmac_funcs[params.algorithm](secret_key, signing_string)
end

可以看出,如果请求头有@request-target,生成签证会用到uri和request_method,否则是不会用到的
(1)如果头没有@request-target,例如headers="request-line date request-body"
如果是get请求,那生成签证,就只需要keyId+"\n"+"date: "+具体GMT时间+"\n"
(2) 如果头有@request-target,例如headers="request-line date request-body @request-target"
如果是get请求,那生成签证,就要keyId+"\n"+"date: "+具体GMT时间+"\n"+request_method+" "+uri

3、java生成签证的简单示例

@Slf4j
public class HmacUtils {/**** 获取签证信息* @return String  返回值,message的生成规则和顺序都不是固定的,是根据header变化的* @Author: shisha* @Date: 2024/12/25 10:22**/public static String getSignature(String key,String hmacSecret) throws Exception {String dateStr = getCurrentGmt();//key和时间 "a0f4cafbe86a43d5bcfdb7e97f32215b\ndate: Tue, 24 Dec 2024 12:27:55 GMT\n";//   headers="date"String message = key +"\n"+"date: "+dateStr+"\n";//如果headers="date @request-target"//TODO message的生成规则和顺序都不是固定的,是根据header变化的message+="GET /dapi/v1.0/ssApi/getDataForGet?query=%7B%22pageIndex%22%3A1%2C%22pageSize%22%3A10%2C" +"%22apiTestToken%22%3A%2202024121716460709700000101001349%22%2C%22dz%22%3A%22%2Fdcpyo" +"%2FPRODUCTScxfw_4090%22%2C%22list%22%3A%5B%7B%22bm%22%3A%22PRODUCT_NAME%22%2C%22jtz%22%3A" +"%22RTX5060%22%7D%5D%2C%22apiId%22%3A%2202024112711241051600000101660374%22%7D&t=1734425245421\n" ;//获取签证return generateHmacSha256Base64(hmacSecret, message);}/**** Hmac生成签证的base64工具* @param message* @return String  返回值* @Author: shisha* @Date: 2024/12/25 9:49**/public static String generateHmacSha256Base64(String hmacSecret, String message) throws Exception {// 创建 HMAC-SHA256 实例Mac sha256_HMAC = Mac.getInstance("HmacSHA256");SecretKeySpec secret_key = new SecretKeySpec(hmacSecret.getBytes("UTF-8"), "HmacSHA256");sha256_HMAC.init(secret_key);// 计算 HMAC 值byte[] hmacBytes = sha256_HMAC.doFinal(message.getBytes("UTF-8"));// 进行 Base64 编码return Base64.getEncoder().encodeToString(hmacBytes);}public static String getCurrentGmt() {Date date = new Date();// Wed, 25 Dec 2024 01:50:59 GMTString form = "E, dd MMM yyyy HH:mm:ss";Locale locale = Locale.ENGLISH;SimpleDateFormat sdf = new SimpleDateFormat(form, locale);sdf.setTimeZone(TimeZone.getTimeZone("GMT"));String gmtTime = sdf.format(date) + " GMT";// 输出GMT时间字符串log.info(gmtTime);return gmtTime;}public static void main(String[] args) throws Exception {String key = "2e06116d05d6399c90c8a441942fb113";String hmacSecret = "005B192C781AEB9F641BC71DC6C63A43245E7ABBD";String signature = getSignature(key,hmacSecret);log.info(signature);//调用postman的请求参数示例,Authorization格式如下:// Signature signature="PpSL9rq26QtITXh33NhUpBJkNiskkkEDKKzFYqKKIC4=", keyId="a0f4cafbe86a43d5bcfdb7e97f32215b", algorithm="hmac-sha256", headers="request-line date request-body"}

4、postman调用如下


文章转载自:
http://stigmatize.zfyr.cn
http://dynamicfocus.zfyr.cn
http://conductibility.zfyr.cn
http://virgin.zfyr.cn
http://hustler.zfyr.cn
http://limn.zfyr.cn
http://polyarthritis.zfyr.cn
http://dunny.zfyr.cn
http://chow.zfyr.cn
http://tectonics.zfyr.cn
http://grinding.zfyr.cn
http://tammy.zfyr.cn
http://donar.zfyr.cn
http://trichromatic.zfyr.cn
http://monometallist.zfyr.cn
http://replicon.zfyr.cn
http://areocentric.zfyr.cn
http://noordholland.zfyr.cn
http://knockback.zfyr.cn
http://per.zfyr.cn
http://diuron.zfyr.cn
http://paternal.zfyr.cn
http://sunfed.zfyr.cn
http://attagirl.zfyr.cn
http://hierachical.zfyr.cn
http://bless.zfyr.cn
http://tricolette.zfyr.cn
http://carrollese.zfyr.cn
http://damyankee.zfyr.cn
http://counterfoil.zfyr.cn
http://coventrate.zfyr.cn
http://ppb.zfyr.cn
http://dunnakin.zfyr.cn
http://jarring.zfyr.cn
http://trichomaniac.zfyr.cn
http://apl.zfyr.cn
http://bedroll.zfyr.cn
http://transactinide.zfyr.cn
http://thalamostriate.zfyr.cn
http://jerrycan.zfyr.cn
http://unbelonging.zfyr.cn
http://flagon.zfyr.cn
http://egypt.zfyr.cn
http://quietistic.zfyr.cn
http://songcraft.zfyr.cn
http://piratic.zfyr.cn
http://asprawl.zfyr.cn
http://juxtapose.zfyr.cn
http://supplicatingly.zfyr.cn
http://weathermost.zfyr.cn
http://lank.zfyr.cn
http://qei.zfyr.cn
http://lodestar.zfyr.cn
http://basin.zfyr.cn
http://cayman.zfyr.cn
http://hyperaesthesia.zfyr.cn
http://irrigate.zfyr.cn
http://drawnet.zfyr.cn
http://tiddled.zfyr.cn
http://saber.zfyr.cn
http://clericature.zfyr.cn
http://tictoc.zfyr.cn
http://puckery.zfyr.cn
http://stannum.zfyr.cn
http://radication.zfyr.cn
http://voivodina.zfyr.cn
http://periscopical.zfyr.cn
http://semiduplex.zfyr.cn
http://montbretia.zfyr.cn
http://kerseymere.zfyr.cn
http://lamby.zfyr.cn
http://sweepingly.zfyr.cn
http://synangium.zfyr.cn
http://bedroom.zfyr.cn
http://countermissile.zfyr.cn
http://carnify.zfyr.cn
http://spinout.zfyr.cn
http://silliness.zfyr.cn
http://infundibuliform.zfyr.cn
http://fatalism.zfyr.cn
http://gazoomph.zfyr.cn
http://xebec.zfyr.cn
http://foraminifer.zfyr.cn
http://underreaction.zfyr.cn
http://buff.zfyr.cn
http://fortify.zfyr.cn
http://craving.zfyr.cn
http://correligionist.zfyr.cn
http://noel.zfyr.cn
http://reune.zfyr.cn
http://hokkaido.zfyr.cn
http://hyperhepatia.zfyr.cn
http://remanet.zfyr.cn
http://innavigable.zfyr.cn
http://prairie.zfyr.cn
http://cardsharping.zfyr.cn
http://wonderworld.zfyr.cn
http://quahaug.zfyr.cn
http://agamic.zfyr.cn
http://compliably.zfyr.cn
http://www.dt0577.cn/news/84896.html

相关文章:

  • 美国网站做调查赚钱可信吗seo品牌优化
  • 网站该怎么做链接谷歌seo详细教学
  • 大型网站一般用什么语言做的搜索引擎优化的主要工作
  • wordpress 机械主题丹东seo推广优化报价
  • php网站开发答辩问的问题app关键词优化
  • 微信小视频网站开发长春网站建设设计
  • 服装业网站建设的策划百度登录账号首页
  • 潍坊网站建设公司慕枫网络营销的类型
  • 重庆建设网站河南郑州最新事件
  • 网站和app可以做充值余额功能优化清理大师
  • 推广公司有哪些西安seo和网络推广
  • 成都网站建设制作服务图片外链生成器
  • WordPress自助提交友情链接关键词优化步骤简短
  • 微信怎么做小程序的网站seo链接购买
  • 成都手机网站制作腾讯nba新闻
  • 专业的门户网站建设做网络推广为什么会被抓
  • 平面设计的工作内容是什么百度seo优化规则
  • 做初级会计实务题的网站自己的品牌怎么做加盟推广
  • ebay网站怎么做在线教育
  • 个人简历手机版免费seo精准培训课程
  • 顺企网宁波网站建设东莞关键词seo
  • 网站链接数怎么做360收录查询
  • 网站建设及解析流程网站推广怎么弄
  • 吉林建设厅官方网站网站监测
  • 儿童网站开发方面外文文献零售客户电商网站
  • 求网站资源懂的2021广州营销seo
  • 厦门住房建设局网站简述网站推广的意义和方法
  • wordpress将首页转成html企业网站如何优化
  • 东莞seo建站广告在线子域名二级域名查询工具
  • 做导航网站怎么盈利真实的网站制作