从过滤器

时间:2016-04-12 11:12:02

标签: jersey jwt

我有一个用于令牌验证的过滤器,我使用JWT令牌进行身份验证和授权。

假设我在JWT令牌有效负载中传递user_id,并且我希望此user_id可用于将通过我的过滤器的所有资源方法,以便我可以在我的资源方法中基于user_id进行查询。

这可能吗?

或者如何将此user_id作为参数从我的过滤器传递给我的资源方法?

这样做是否是一种好习惯?

public void filter(ContainerRequestContext requestContext)
            throws IOException, ConnectException {

        UriInfo uriInfo = requestContext.getUriInfo();

        UserModel user = new UserModel();
        Claims claim =null;
        String temp=null;
        requestContext.setProperty("before","before");
      if (uriInfo.getPath().equals("profile")) {  

        String authorizationHeader = 
            requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);

        // Check if the HTTP Authorization header is present and formatted correctly 
        if (authorizationHeader == null || !authorizationHeader.startsWith("Bearer ")) {
            throw new NotAuthorizedException("Authorization header must be provided");
        }

        // Extract the token from the HTTP Authorization header
        String tokens = authorizationHeader.substring("Bearer".length()).trim();

        try {
            claim = user.validateToken(tokens);
        } catch (SQLException ex) {
            Logger.getLogger(AuthorizationRequestFilter.class.getName()).log(Level.SEVERE, null, ex);
        }

        requestContext.setProperty("id",claim.getId());
        requestContext.setProperty("hello","hello");

      }
}

我能够在"之前获得"的价值我的资源方法中的变量。 但是我为#34;你好"和" id"。我想得到价值" id"在我的资源方法中。

由于

0 个答案:

没有答案