2
回答
Interceptor能拦截内部的方法,做到登录验证后访问,但如果是内部的html怎么处理?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

各位,在项目中,使用Interceptor来拦截对内部方法的非法访问非常方便。但似乎对直接访问内部页面文件,如:html页面无效,搜索了一下,如果采用handler对所有html进行处理又不能达到我的目的。我想达到的目的是,如果未登录验证,则不能访问内部页面(最好包括静态资源),登录验证后则可以正常访问。

请教一下最佳的实现方式。

举报
liumula
发帖于4年前 2回/584阅
共有2个答案 最后回答: 4年前

      生产环境用 nginx 配置一下不允许直接对 html 的访问就就打完收工了,现在做 web 主流都走 MVC了,都不会再直接访问 html 了,所以直接屏蔽掉  *.html 的访问即可。

     另一种办法是将所有 view 模板都放 WEB-INF 下面。还有一种办法就是不理会这种情况,一般也不会有人无聊去直接访问你的html,还得猜 html 文件名才能访问得到。

     如果让 jfinal 处理,最简单的办法是用 Handler 屏蔽所有 html 访问

if (target.endsWith(".html")) {
   isHandled[0] = true;
   RenderFactory.me().getErrorRender(404).render();
}
else {
   nextHandle.handle(target, request, response, isHandled);
}
顶部