Springboot整合shiro时静态资源被拦截的问题

狂风中的少年 提交于 2020-01-31 12:09:20

目录结构如下


在自己配置的ShiroConfig中已经放行了

filterChainDefinitionMap.put("/static/**", "anon");

login.ftl也引用了静态资源

<link rel="stylesheet" type="text/css" href="/logins/css/normalize.css" />
<link rel="stylesheet" type="text/css" href="/logins/css/demo.css" />
<link rel="stylesheet" href="/logins/js/vendor/jgrowl/css/jquery.jgrowl.min.css">

可是资源依然被拦截了

于是注释掉了

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

静态资源可以访问了, 说明不是shiro的内在问题.

经过一番考虑, 感觉像是静态资源路径的问题, 于是在浏览器控制台看一下source的路径, 发现静态资源的路径前面是没有static的, 因而shiro也不会放行.

springboot默认会将static目录中的内容做为classes根目录的内容发布到web服务器, 所以如果想要放行静态资源, 同时又要实现拦截/**请求, 那么我的解决办法是:

解决办法

目录改造如下:


拦截配置:

filterChainDefinitionMap.put("/statics/**", "anon");
filterChainDefinitionMap.put("/**", "authc");

重启web服务器, 清除浏览器缓存, 此时source中已经是正确的路径了, 静态资源被引用了.问题解决


记录一下自己犯得低级错误, 见笑见笑 (笑哭脸)

                        <li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true">
                            <use xlink:href="#csdnc-thumbsup"></use>
                        </svg><span class="name">点赞</span>
                        <span class="count">2</span>
                        </a></li>
                        <li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true">
                            <use xlink:href="#icon-csdnc-Collection-G"></use>
                        </svg><span class="name">收藏</span></a></li>
                        <li class="tool-item tool-active is-share"><a href="javascript:;"><svg class="icon" aria-hidden="true">
                            <use xlink:href="#icon-csdnc-fenxiang"></use>
                        </svg>分享</a></li>
                        <!--打赏开始-->
                                                <!--打赏结束-->
                                                <li class="tool-item tool-more">
                            <a>
                            <svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
                            </a>
                            <ul class="more-box">
                                <li class="item"><a class="article-report">文章举报</a></li>
                            </ul>
                        </li>
                                            </ul>
                </div>
                            </div>
            <div class="person-messagebox">
                <div class="left-message"><a href="https://blog.csdn.net/Maxs_personal">
                    <img src="https://profile.csdnimg.cn/9/7/6/3_maxs_personal" class="avatar_pic" username="Maxs_personal">
                                            <img src="https://g.csdnimg.cn/static/user-reg-year/2x/2.png" class="user-years">
                                    </a></div>
                <div class="middle-message">
                                        <div class="title"><span class="tit"><a href="https://blog.csdn.net/Maxs_personal" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">Maxs_personal</a></span>
                                            </div>
                    <div class="text"><span>发布了3 篇原创文章</span> · <span>获赞 2</span> · <span>访问量 8945</span></div>
                </div>
                                <div class="right-message">
                                            <a href="https://im.csdn.net/im/main.html?userName=Maxs_personal" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信
                        </a>
                                                            <a class="btn btn-sm  bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">关注</a>
                                    </div>
                            </div>
                    </div>
    

    目录结构如下


    在自己配置的ShiroConfig中已经放行了

    filterChainDefinitionMap.put("/static/**", "anon");

    login.ftl也引用了静态资源

    <link rel="stylesheet" type="text/css" href="/logins/css/normalize.css" />
    <link rel="stylesheet" type="text/css" href="/logins/css/demo.css" />
    <link rel="stylesheet" href="/logins/js/vendor/jgrowl/css/jquery.jgrowl.min.css">

    可是资源依然被拦截了

    于是注释掉了

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

    静态资源可以访问了, 说明不是shiro的内在问题.

    经过一番考虑, 感觉像是静态资源路径的问题, 于是在浏览器控制台看一下source的路径, 发现静态资源的路径前面是没有static的, 因而shiro也不会放行.

    springboot默认会将static目录中的内容做为classes根目录的内容发布到web服务器, 所以如果想要放行静态资源, 同时又要实现拦截/**请求, 那么我的解决办法是:

    解决办法

    目录改造如下:


    拦截配置:

    filterChainDefinitionMap.put("/statics/**", "anon");
    filterChainDefinitionMap.put("/**", "authc");

    重启web服务器, 清除浏览器缓存, 此时source中已经是正确的路径了, 静态资源被引用了.问题解决


    记录一下自己犯得低级错误, 见笑见笑 (笑哭脸)

    标签
    易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
    该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!