SpringBoot下使用Shiro+Freemaker报错:org.apache.shiro.UnavailableSecurityManagerException

3,301次阅读
一条评论

前言

今天在日常敲代码中,给SpringBoot自定义错误页,但是本来一件简单的事情却变得复杂起来了,页面总是空白的而且没有输出,后面新建了一个项目,但是在新项目中一切都是OK的,于是我进行一步步的对比调试,最终确定了是Shiro的FreeMarker Tag出的错导致页面渲染终止。 SpringBoot下使用Shiro+Freemaker报错:org.apache.shiro.UnavailableSecurityManagerException

解决办法

在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>

1
憧憬Licoy
版权声明:本站原创文章,由憧憬Licoy于2018年03月18日发表,共计1276字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
Loading...
广州网站建设 评论达人LV.2
2018-09-10 10:46:48 回复

每日签到,生活更精彩 ~:2018-09-10 10:46:55