小编Ter*_*iel的帖子

如何修复 Spring Security Authorization header 未通过的问题?

在我的一项 REST 服务中,我利用 Spring Security 来验证标头中传递的令牌。然而,spring 无法找到“Authorization”标头,即使它在那里。在测试中甚至在本地进行测试时这都不是问题,但当我们部署到 PROD 时,我们遇到了这个问题。

作为替代/解决方法,我删除了 Spring 安全性,而是尝试在实际端点中验证我的令牌,然后再继续请求的其余部分,如下所示:

@PostMapping(value="/create",consumes="application/json; charset=utf-8")
    @CrossOrigin
    public ResponseEntity createAccount(@RequestBody MerchantAccount merchantAccount,@RequestHeader(name="Authorization") String token) {
        log.info("Checking User Token");
        if(!jwtUtil.isAuthorizedToken(token))
            return ResponseEntity.status(401).build();
//some creating Account Logic
}
Run Code Online (Sandbox Code Playgroud)

如果我再次执行上述操作,它将在 TEST 和 LOCAL 中工作,但在 PROD 中不起作用。我收到的错误是“缺少授权标头”。但它再次出现。(从邮递员测试到)。

经过一番研究,我发现我可以添加“,required = false”,这样spring就不会检查它,但仍然没有可以提取的令牌。

PROD 和 TEST 与我本地的唯一区别如下:

Java版本 测试中的java版本:java version "1.6.0_32"

PROD 上的 java 版本:java version "1.8.0_121"

本地java版本:java version "1.8.0_221"

在测试中我们使用 HTTP,PROD 使用 HTTPS。POM文件中的Spring Security版本是5.2

编辑 在我的网络配置中,我确实有一个部分允许出现“授权”标头,如下所示。

 @Bean
    public CorsConfigurationSource corsConfigurationSource() {
        final CorsConfiguration configuration = …
Run Code Online (Sandbox Code Playgroud)

java rest spring spring-security spring-boot

7
推荐指数
1
解决办法
2万
查看次数

如何从内联键盘获取数据作为单个结果?

我有一个已设置并连接到我的后端的电报机器人。当用户选择“输入密码”选项时,我会在请求旁边发送一个内嵌键盘,以便用户可以输入他的数字密码。我这样做是为了不会在聊天中显示密码。我遇到的问题是我使用 callback_data 为按下的按钮分配一个值,但是当按下按钮时,这些回调会一一发生。我想知道是否可以建立一个累积的按下字符字符串,一旦按下“提交”按钮,就可以通过用户的响应发送。

我的内联请求目前如下所示:

{
  "chat_id": 99999999,
  "text": "Enter Password",
  "reply_markup": {
  
    "inline_keyboard": [
        
      [{"text": "1","callback_data":"1","pay":true},{"text": "2","callback_data":"2"},{"text": "3","callback_data":"3"}],
      [{"text": "4","callback_data":"4"},{"text": "5","callback_data":"5"},{"text": "6","callback_data":"6"}],
      [{"text": "7","callback_data":"7"},{"text": "8","callback_data":"8"},{"text": "9","callback_data":"9"}],
      [{"text": "0","callback_data":"0"}],
      [{"text": "Submit","callback_data":"Submit"}]
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

此外,还可以在按下提交后使内联按钮消失,我已经浏览了电报机器人文档,并且可以找到任何这样的选项。 https://core.telegram.org/bots/api#sendmessage

请告知这是否可行,或者我是否应该采取另一种方法。

telegram telegram-bot

3
推荐指数
1
解决办法
6063
查看次数