JAX-RS 2.0的一个问题 2C

说一下场景,我的每一个XXXResource的每一个API基本上都需要一个用户ID,
因为client的每一次请求只会带来一个Token

现在我的做法是,在ContainerRequestFilter中做鉴权,然后鉴权完成后会手动的网HTTP头里面塞进去一个UID,然后在XXXResource的方法参数中中通过@HeaderParam("uid")的方式获取用户id,但是这样做,会导致每一个方法中都有一个这个uid参数,我想问一下有什么更加简便的方式去做这个事情

下面是我在ContainerRequestFilter中塞入UID的逻辑

     @Override
    public void filter(ContainerRequestContext requestContext)
            throws IOException {
        String auth = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);

        if (StringUtils.isEmpty(auth)) {
            LOG.debug("HTTP Header Authorization not found.");
            throw new WebApplicationException(HttpStatus.SC_UNAUTHORIZED);
        }

        String userID = validateToken(auth);

        requestContext.getHeaders().putSingle("UID", userID);
    }

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问