当前位置: 首页 > 知识库问答 >
问题:

JWT身份验证在超分类帐编写器中失败

冀永寿
2023-03-14

我一直在关注Caroline的博客来设置一个多用户composer rest服务器。所以,我有两个服务器,即。管理服务器和用户服务器。

正如教程I中提到的:

    null
COMPOSER_PROVIDERS='{
  "jwt": {
      "provider": "jwt",
      "module": "/home/composer/node_modules/custom-jwt.js",
      "secretOrKey": "somesecretkey",
      "authScheme": "saml",
      "successRedirect": "/",
      "failureRedirect":"/"
  }
}'

我第一次从Java服务交换JWT令牌。为了创建承载令牌,我编写了以下代码:

public static String getBearerToken(String username, String id) throws UnsupportedEncodingException {
    return Jwts.builder()
            .claim("timestamp", System.currentTimeMillis())
              .claim("username", username)
              .claim("id", id)
              .signWith(
                SignatureAlgorithm.HS256,
                "somesecretkey".getBytes("UTF-8")
              ).compact();
}

有了这个,我就能拿到令牌了。接下来,我使用这个令牌将卡导入到用户服务器上的钱包中:

RestTemplate restTemplate = new RestTemplate();

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.set("X-Access-Token",getAccess_token(participantEmail));
headers.set("x-api-key", userServerKey);

LinkedMultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
params.add("card", new FileSystemResource(card));
params.add("name", participantEmail);

HttpEntity<LinkedMultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);

UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(CARD_IMPORT_URL);


ResponseEntity<String> responseEntity = restTemplate.exchange(builder.build().encode().toUri(),
                HttpMethod.POST, requestEntity, String.class);

然而,这导致:

共有1个答案

淳于知
2023-03-14

这里的问题是我在所有主机上对mongodb容器使用了相同的名称。由于所有容器都连接到swarm网络,所以有8个mongodb容器具有相同的名称,这是一个相当愚蠢的错误。它在composer-rest-server的docker容器尝试连接到mongodb容器时导致了一个问题。此连接在COMPOSER_DATASOURCES变量中定义。对所有主机上的每个mongo容器使用不同的名称解决了这个问题。

 类似资料:
  • 我正在开发一个具有自己的身份验证和授权机制的REST应用程序。我想使用JSON Web Tokens进行身份验证。以下是有效且安全的实现吗? < li >将开发一个REST API来接受用户名和密码并进行认证。要使用的HTTP方法是POST,因此没有缓存。此外,在传输时还会有安全SSL < li >在认证时,将创建两个JWTs访问令牌和刷新令牌。刷新令牌将具有更长的有效期。这两个令牌都将写入coo

  • 在auth-routes示例中,api和nuxt一起启动并使用一个Node.js服务器实例。但是,有时我们应该使用jsonWebToken处理外部api身份验证问题。在这个例子中,将用最简单的方式解释。 官方 auth-module 如果要实现复杂的身份验证流程,例如OAuth2,我们建议使用官方 auth-module 结构 由于Nuxt.js同时提供服务器和客户端呈现,并且浏览器的cookie

  • 注意:我的问题与Spring-Boot REST API+web应用程序的安全性有关。

  • 我必须说,我对整个模型非常困惑,我需要帮助把所有的浮动件粘在一起。 我不是在做Spring REST,只是简单的WebMVC控制器。 什么让人困惑?(错误之处请指正) 第三方身份验证 要针对第三方进行身份验证,我需要通过扩展AuthenticationProvider来拥有自定义提供程序 null 问题: 何时调用AbstractAuthenticationProcessingFilter#Suc

  • 突然,当尝试通过护照创建JWT时,我开始在生产中遇到此错误,运行在Ubuntu / apache2上。据我所知,服务器上没有任何更改,没有安装,没有部署,它只是停止工作。 PHP 7.3 OpenSSL 1.0.1f Laravel 5.8 我还注意到这个错误的另一个版本。没有什么变化,所以我不知道为什么会出现这种错误。 注意这一点:

  • 根据本文,我使用Spring Security基础使用JWT实现了REST Security-https://www.toptal.com/java/rest-security-with-jwt-spring-security-and-java 特别是,我有一个过滤器,可以使用请求的“授权”头中的令牌对用户进行身份验证: 所以,每次处理请求时,我的过滤器都不会在HttpServletRequest