前言
今天在日常敲代码中,给SpringBoot自定义错误页,但是本来一件简单的事情却变得复杂起来了,页面总是空白的而且没有输出,后面新建了一个项目,但是在新项目中一切都是OK的,于是我进行一步步的对比调试,最终确定了是Shiro的FreeMarker Tag出的错导致页面渲染终止。
解决办法
在shiro的配置文件中添加如下的配置bean:
@Bean public MethodInvokingFactoryBean methodInvokingFactoryBean(SecurityManager securityManager){ MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean(); bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager"); bean.setArguments(securityManager); return bean; }
要注意的是在这之前你要有配置
SecurityManager
的bean,其上述代码的作用就当于调用SecurityUtils.setSecurityManager(securityManager)然后完成上述步骤之后,就可以愉快的使用shiro tag了,比如:
<@shiro.user> <a class="item dis-in" href="/account/home.html">欢迎您,<@shiro.principal/></a> </@shiro.user> <@shiro.guest> <a class="item dis-in" href="/account/sign-in.html">登录/注册</a> </@shiro.guest>
每日签到,生活更精彩 ~:2018-09-10 10:46:55