if (principal instanceof CsUser) 判断不生效直接跳过

想使用instanceof 来判断类型的时候为什么会直接跳过的呢

 if (principal instanceof CsUser) {
            Long UserId = csJwtService.getAuthenticationId();


            Set<String> urls = rbacUrlService.urls( UserId );
            //不能使用等于来比较
            for (String url : urls) {
                //如果存在url就返回true
                if (antPathMatcher.match(url, request.getRequestURI())) {
                    hasPermission = true;
                    break;
                }
            }
 }

在这段代码开头加上
principal = new CsUser();
,,,

看看是否能走入if

principal instanceof CsUser返回false说明principal不是CsUser实例,下面代码也没有使用上principal这个变量,这里判断有什么作用呢?

principal 如果我没记错,应该时出现在shiro中的一个数据结构,而CsUser,如果没猜错,这是你自己定义的一个数据结构,两者之间不存在继承或者实现关系,
你使用instanceof这个语法糖来判断,那返回值是false。那自然你的方法体中的内容是无法执行的。