API报文加密配置解析报错

Blade 已结 1 729
fjy8018
fjy8018 剑者 2021-11-02 15:37

一、该问题的重现步骤是什么?

  1. 加密前业务接口

@GetMapping("/search/page")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "业务查询", notes = "传入查询参数")
public R<IPage<PasswordVO>> page(@ApiParam(value = "查询参数", required = true)String param,
                         @ApiParam(value = "分页参数") Query query) {...}

前端配置

export const getSearchList = (current, size, param) => {
  return request({
    url: '/api/search/page',
    method: 'get',
    params: {
      param,
      current,
      size,
    }
  })
}


2. 按照报文加密实例配置后的业务接口

@ApiCrypto
@GetMapping("/search/page")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "业务查询", notes = "传入查询参数")
public R<IPage<PasswordVO>> page(@ApiParam(value = "查询参数", required = true) @ApiDecryptAes String param,
                         @ApiParam(value = "分页参数") @ApiDecryptAes Query query) {...}

前端配置

export const getSearchList = (current, size, param) => {
  const condition = {
    current,
    size,
    param
  }
  const data = crypto.encryptAES(JSON.stringify(condition), crypto.aesKey);
  return request({
    url: '/api/search/page',
    method: 'get',
    params: {
      data
    }
  })
}

3.接口调用后报错

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token
 at [Source: (byte[])"{"current":1,"size":10,"param":"aa"}"; line: 1, column: 1]


二、你期待的结果是什么?实际看到的又是什么?

希望提供这类多参数接口的加解密配置指引。


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

BladeX-Boot 2.8.1


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  •  zhx1994
    zhx1994 (最佳回答者)
    2021-11-02 15:47

    要用bean接受参数

    WS1~%LR}SMMM90PJZ1[)7)L.png

    0 讨论(1)
提交回复