大白兔爱吃AD钙奶的奶糖 2019-12-02 15:41 采纳率: 0%
浏览 1398

springboot+shiro认证成功后无法跳转successUrl

这是Filter

@Bean(name = "shiroFilter")
    public ShiroFilterFactoryBean shiroFilterFactoryBean() {
        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
        shiroFilterFactoryBean.setSecurityManager(securityManager());
        Map<String, Filter> filters = new LinkedHashMap<>();
        //自定义Filter
        filters.put("authc", new ShiroFormAuthenticationFilter());
        shiroFilterFactoryBean.setFilters(filters);
        Map<String, String> filterChainDefinitionManager = new LinkedHashMap<String, String>();
        filterChainDefinitionManager.put("/","authc");
        shiroFilterFactoryBean.setLoginUrl("/");
        shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionManager);
        shiroFilterFactoryBean.setSuccessUrl("/Success.do");
        shiroFilterFactoryBean.setUnauthorizedUrl("/403");
        return shiroFilterFactoryBean;
    }

这个是我的自定义继承FormAuthenticationFilter

public class ShiroFormAuthenticationFilter extends FormAuthenticationFilter {
    @Override
    protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response) throws Exception {
        System.out.println("------------------------");
        String successUrl = "/admin/access/index.html";//我是直接写死了跳转链接

        WebUtils.issueRedirect(request,response,successUrl);

        return false;//返回false表示执行链结束
    }
}

现在问题是我看了网上的教程,说是要继承重新onLoginSuccess方法,但是我的这个自定义的Filter始终没有被执行,SuccessUrl也一直没有跳转
各位大佬 求帮助。。。

  • 写回答

2条回答 默认 最新

  • 仔鸡 2019-12-02 16:16
    关注

    首先,,,

    filterChainDefinitionManager.put("/","authc");
    

    这行的要求认证的路径写错了,应该用

    filterChainDefinitionManager.put("/**","authc");
    

    来匹配
    然后,你真的认证通过了么,或者你那个登陆成功的页面确认可以访问吗?

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable