如何获取长春免费网站建站模板,以优化您的报价功能清单?
摘要:网站报价功能清单,长春免费网站建站模板,网站的建设和维护,安徽建设相关网站需求描述:需要根据用户的请求路径拦截做权限控制: 但是这样做全局异常无法捕获 解决方案&#
网站报价功能清单,长春免费网站建站模板,网站的建设和维护,安徽建设相关网站需求描述#xff1a;需要根据用户的请求路径拦截做权限控制#xff1a; 但是这样做全局异常无法捕获
解决方案#xff1a;
在filter当中引入HandlerExceptionResolver类#xff0c;通过该类的resolveException方法抛出自定义异常#xff1a; public class OpenInvokeFil…需求描述需要根据用户的请求路径拦截做权限控制 但是这样做全局异常无法捕获
解决方案
在filter当中引入HandlerExceptionResolver类通过该类的resolveException方法抛出自定义异常 public class OpenInvokeFilter extends OncePerRequestFilter {Autowiredprivate GaioAuthorizedProperties gaioAuthorizedProperties;AutowiredQualifier(handlerExceptionResolver)private HandlerExceptionResolver resolver;Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)throws ServletException, IOException {boolean containsUri request.getRequestURI().contains(/open/invoke);if (containsUri) {String paasid request.getHeader(x-tif-paasid);String serviceId request.getHeader(x-smp-serviceid);if (StringUtils.isNotBlank(paasid)) {// 从yml获取匹配数据判断当前paasId是否有权限调用指定的serviceId无权限则拦截处理。AccessProperties accessProperties gaioAuthorizedProperties.getType().get(ebus);MapString, String[] passServiceMap accessProperties.getPassServiceMap();String[] serviceIds passServiceMap.get(paasid);if (serviceIds null) {resolver.resolveException(request, response,null, new GaioBizException(RESOURCE_NOT_FOUND_ERROR));return;}boolean match Arrays.stream(serviceIds).anyMatch(item - item.equals(serviceId));if (!match) {resolver.resolveException(request, response,null, new GaioBizException(RESOURCE_NOT_FOUND_ERROR));return;}}}chain.doFilter(request, response);}}
