有人知道怎么拦截webapp下的html吗

zekeTao 2018-09-21 04:39:22
springboot配置了拦截器,但是拦截不到直接访问服务器目录HTML的路径,有没有人遇到过
...全文
635 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果没有配置静态文件映射的话应该能拦截的
zekeTao 2018-09-28
  • 打赏
  • 举报
回复
结了,直接访问文件中html路径,不过拦截器,无解
zekeTao 2018-09-25
  • 打赏
  • 举报
回复
@Slf4j
@Configuration
public class WebSecurityConfig extends WebMvcConfigurerAdapter {

@Bean
public SecurityInterceptor getSecurityInterceptor() {
return new SecurityInterceptor();
}

@Override
public void addInterceptors(InterceptorRegistry registry) {
InterceptorRegistration addInterceptor = registry.addInterceptor(getSecurityInterceptor());

// 排除配置
addInterceptor.excludePathPatterns("/login.html");
addInterceptor.excludePathPatterns("/register.html");

// 拦截配置
addInterceptor.addPathPatterns("/**");

}

private class SecurityInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String path = request.getRequestURI();
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");

log.info("path: {}", path);
log.info("user: {}", user);

if (path.contains("login") || path.contains("register")) {
return true;
}

if (user != null) {
System.out.println("返回true");
return true;
}

response.sendRedirect("/login.html");
return false;
}

}
}


我想拦截到不符合条件的路径,重定向到登录页面,刚刚debug了一下,是拦截到了,但是重定向登录页面没有成功
zhanghw94 2018-09-23
  • 打赏
  • 举报
回复
拦截器是怎么配置的
icarusliu81 2018-09-21
  • 打赏
  • 举报
回复
可以拦截啊,如:
@Configuration
@EnableWebMvc
public class ValidationConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new HandlerInterceptor() {
            @Override
            public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
                System.out.println("postHandle");
                System.out.println(request.getRequestURI());
            }

            @Override
            public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
                System.out.println("preHandle");
                System.out.println(request.getRequestURI());

                return true;
            }
        });
    }
}
将会打印:

preHandle
/test.html
postHandle
/test.html
你是怎么配置的?
zekeTao 2018-09-21
  • 打赏
  • 举报
回复
比如服务器下webapp/a/b.html这个路径,访问 http://localhost/a/b.html 拦截器拦截不到

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧