Bearer token Micronaut令牌传播引发未经验证的错误
作为项目需求的一部分,我尝试从父服务调用两个服务器API。我的所有端点都是安全的,所以令牌必须通过每个请求传递。为了将令牌从父控制器传递到端点调用,我使用了micronaut的令牌传播概念。但我仍然看到“未授权”的儿童请求错误。注意:我正在父控制器方法(记录并验证)处接收令牌。下面是我的代码 父控制器-ClientUserControllerBearer token Micronaut令牌传播引发未经验证的错误,bearer-token,micronaut,propagation,Bearer Token,Micronaut,Propagation,作为项目需求的一部分,我尝试从父服务调用两个服务器API。我的所有端点都是安全的,所以令牌必须通过每个请求传递。为了将令牌从父控制器传递到端点调用,我使用了micronaut的令牌传播概念。但我仍然看到“未授权”的儿童请求错误。注意:我正在父控制器方法(记录并验证)处接收令牌。下面是我的代码 父控制器-ClientUserController package io.appter.portal.controllers; import io.appter.portal.models
package io.appter.portal.controllers;
import io.appter.portal.models.ClientContact;
import io.appter.portal.models.User;
import io.appter.portal.repositories.IClientManagementClient;
import io.appter.portal.repositories.IUserManagementClient;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Header;
import io.micronaut.http.annotation.Post;
import io.micronaut.security.annotation.Secured;
import io.micronaut.security.rules.SecurityRule;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
@Controller("clientuser")
public class ClientUserController {
private static final Logger LOG = LoggerFactory.getLogger(ClientUserController.class);
private IClientManagementClient clientManagementClient;
private IUserManagementClient userManagementClient;
public ClientUserController(IClientManagementClient clientManagementClient, IUserManagementClient userManagementClient) {
this.clientManagementClient = clientManagementClient;
this.userManagementClient = userManagementClient;
}
@Post("/")
@Secured(SecurityRule.IS_AUTHENTICATED)
public ClientContact createClientContactUser(ClientContact clientContact,
@Header("Authorization") String authorization
) {
LOG.info("Authorization token received is: " + authorization);
List<ClientContact> clientContacts = clientManagementClient.getClientContactByClientId(133);
LOG.info("client contact 0 - Email Address received from API is: " + clientContacts.get(0).getEmailAddress());
String testInfo = userManagementClient.test();
LOG.info("Test Info received from API is: " + testInfo);
return clientContact;
}
}
IClientManagementClient.java
package io.appter.portal.repositories;
import io.appter.portal.models.User;
import io.micronaut.http.annotation.Get;
import io.micronaut.http.annotation.Post;
import io.micronaut.http.client.annotation.Client;
@Client(id = "usermanagement")
public interface IUserManagementClient {
@Post("/user")
public User createUser(User user);
@Get("/user/test")
public String test();
}
package io.appter.portal.repositories;
import io.appter.portal.models.ClientContact;
import io.micronaut.http.annotation.Get;
import io.micronaut.http.annotation.Post;
import io.micronaut.http.client.annotation.Client;
import java.util.List;
@Client(id = "clientmanagement")
public interface IClientManagementClient {
@Post("/clientcontact")
public ClientContact createClientContact(ClientContact clientContact);
@Get("/getClientContactByClientId/{id}")
public List<ClientContact> getClientContactByClientId(Integer id);
}
有人能帮我吗
谢谢,
Buddanna T您可以使用:
public String test(@Header("Authorization") String authorization);
public String test(@Header("Authorization") String authorization);