我有一个用于令牌验证的过滤器,我使用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"在我的资源方法中。
由于