有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java后处理器拦截器:如何访问HTTP请求?

我有一个拦截器

@Interceptor
@Provider
@ServerInterceptor
@SecurityChecked
public class SecurityCheckInterceptor implements PreProcessInterceptor, AcceptedByMethod, PostProcessInterceptor {
    private static final Logger LOGGER = LoggerFactory.getLogger(SecurityCheckInterceptor.class);

    @Nullable
    @Override
    public ServerResponse preProcess(final HttpRequest request, final ResourceMethod method) throws Failure, WebApplicationException {
        final List<String> authToken = request.getHttpHeaders().getRequestHeader(AUTH_TOKEN);

        if (authToken == null || !isValidToken(authToken.get(0))) {
            final ServerResponse serverResponse = new ServerResponse();
            serverResponse.setStatus(Response.Status.UNAUTHORIZED.getStatusCode());
            return serverResponse;
        }

        return null;
    }

    @SuppressWarnings("rawtypes")
    @Override
    public boolean accept(final Class declaring, final Method method) {
        // return declaring.isAnnotationPresent(SecurityChecked.class);
        return method.isAnnotationPresent(SecurityChecked.class);
    }

    @Override
    public void postProcess(final ServerResponse response) {
        LOGGER.info("post-processing response " + response.getEntity());
    }

}

我想要什么
-每次回复返回时,我都需要添加一个新的AUTH_TOKEN
-原始的request可以访问请求头,其中一个头的形式是

signature:user:expires
  • 我需要从这个request头访问user来生成一个新的基于时间的令牌

我怎样才能访问request头文件


共 (0) 个答案