Springboot集成Shiro和CAS以及常见问题

1、Springboot集成Shiro和CAS,移步博客:https://blog.csdn.net/catoop/article/details/50534006

     主要是继承CasRealm写自己项目的realm,有条件地重写里面的doGetAuthenticationInfo()身份认证和doGetAuthorizationInfo()用户授权这两个方法。

2、一些常见问题:

(1)自定义的realm类中的doGetAuthorizationInfo()方法就是不进去执行

            自定义的realm配置setAuthorizationCachingEnabled为false:shiroCasRealm.setAuthorizationCachingEnabled(false);

            同理自定义realm也可以设置setAuthenticationCachingEnabled的状态。

(2)跳转正常 但是未能够识别出目标 'ST-13-2EreKS2Ea4OKRjL3Dv9u-pc-PC',ticket票根报错 验证不通过:

        查看下Cas登录页面地址,当前项目地址等url地址是否正确。

(3)各种登录地址,错误地址,正确跳转地址都可以在CasFilter设置

 @Bean(name = "casFilter")
    public CasFilter getCasFilter() {
        CasFilter casFilter = new CasFilter();
        casFilter.setName("casFilter");
        casFilter.setEnabled(true);
        // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
        casFilter.setLoginUrl(BasicApi.LOGIN_URL);
        // 登录成功后跳转地址
        casFilter.setSuccessUrl("http://lwj.gzhtoa.cn:8888/pk/index.html");
        // 登录失败后跳转的URL,也就是 Shiro 执行 CasRealm 的 doGetAuthenticationInfo 方法向CasServer验证tiket
//        casFilter.setFailureUrl(LOGIN_URL);// 我们选择认证失败后再打开登录页面
        return casFilter;
    }

(4)cas登录页面跳转回我们设置的地址,出现无限重定向或者重定向次数过多导出错误:

     检查各种设置的url地址以及casFiltre拦截器拦截的url

(5)shiroFilter设置特定url为anno无反应

          1) filterChainDefinitionMap要用LinkedHashMap,不能使用HashMap。设置的拦截器了顺序从上到下,优先级依次降低;

          2)拦截的url是否正确。比如open路径下都不用验证,要设置filterChainDefinitionMap.put("/open/**", "anon"); 

               设置“/open”会无效。

 

 

 

 

 

你可能感兴趣的:(Springboot集成Shiro和CAS以及常见问题)