spring请求外挂认证?

aoyhnmkz  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(306)

我在javaspring服务核心和服务商店中使用了两个服务,我想用服务核心中的方法从服务核心插入数据,但是在服务核心中我需要承载令牌,如何从服务商店向服务核心发送auth承载令牌?

y4ekin9u

y4ekin9u1#

实施 RequestInterceptor 将身份验证设置为请求头。

public void apply(RequestTemplate template) {
        if (RequestContextHolder.getRequestAttributes() != null && RequestContextHolder.getRequestAttributes() instanceof ServletRequestAttributes) {
            HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
            String authorization = request.getHeader("Authorization");
            if (StringUtils.isNotBlank(authorization)) {
                template.header("Authorization", new String[]{authorization});
            }
        }

    }
mklgxw1f

mklgxw1f2#

当然,您需要一种使用 client-credentials 补助金类型
如果您希望在每个集成的基础上执行此操作,可能是因为您使用不同的方法与不同的服务集成,您可以执行以下操作:

@RequestMapping(method = [RequestMethod.GET], value = ["/id/{id}"], produces = [MediaType.APPLICATION_JSON_VALUE], consumes = [MediaType.APPLICATION_JSON_VALUE])
operator fun get(
    @RequestHeader("Authorization") bearerToken: String = "Bearer mybiglongencodedtoken....",
    @PathVariable("id") code: String,

相关问题