如何解决Cron 和容器请求过滤器
我已经实现了一个 ContainerRequestFilter 来验证所有发出的请求并检查用户是否具有使用某些端点的正确权限。但我也有一些编程任务或 java cron,我想知道是否有某种方法可以知道该请求是由 cron 调用的还是由其他调用它的人调用的。
当前代码:
public class Filter implements ContainerRequestFilter {
private static final Logger LOGGER = Logger.getLogger(Filter.class.getSimpleName());
@Context
private HttpServletRequest request;
private User user = (User) SpringApplicationContext.getBean("user");
@Override
public void filter(ContainerRequestContext requestContext) {
try {
String userString = requestContext.getHeaders().get("user").get(0);
if (userString == null) {
requestContext.abortWith(ACCESS_FORBIDDEN);
return;
}
String endpoint = requestContext.getUriInfo().getPath();
if (!user.hasAccess(userString,endpoint)) {
requestContext.abortWith(ACCESS_DENIED);
return;
}
} catch (BusinessException e) {
e.printStackTrace();
requestContext.abortWith(ACCESS_FORBIDDEN);
return;
}catch (Exception e){
e.printStackTrace();
requestContext.abortWith(SERVER_ERROR);
return;
}finally {
LOGGER.info("FINISHED");
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。