问题描述
我已经实现了一个 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 (将#修改为@)