美文网首页
22.授权规则

22.授权规则

作者: LANSHENGYANG | 来源:发表于2020-05-29 15:37 被阅读0次

    授权规则

    • 很多时候,我们需要根据调用来源来判断该次请求是否允许放行,这时候可以使用Sentinel的来源访问控制的功能。来源访问控制根据资源的请求来源(origin)限制资源是否通过:
      • 若配置名单,则只有请求来源位于白名单内时才可通过;
      • 若配置黑名单,则请求来源位于黑名单不通过,其余的请求通过。


        image
    • 上面的资源名和授权类型不难理解,但是流控应用怎么填写呢?

    其实这个位置要填写的是来源标识,Sentinel提供了RequestOriginPartser接口来处理来源。
    只要Sentinel保护接口资源被访问,Sentinel就会调用RequestOriginPartser的实现类去解析访问来源。

    • 第1步:自定义来源处理规则
    @Component
    public class RequestOriginParserDefinition implements RequestOriginParser {
    
        /**
         * 定义区分来源:本质作用是通过request域获取到来源标识
         * app pc
         * 然后交给流控应用位置进行匹配
         * @param request
         * @return
         */
        @Override
        public String parseOrigin(HttpServletRequest request) {
            String serviceName = request.getParameter("serviceName");
            if (StringUtils.isEmpty(serviceName)){
                throw new RuntimeException("serviceName is not empty");
            }
            return serviceName;
        }
    }
    

    相关文章

      网友评论

          本文标题:22.授权规则

          本文链接:https://www.haomeiwen.com/subject/ybzxzhtx.html