浏览器被重定向到service-worker.js

时间:2016-06-20 09:31:01

标签: spring spring-boot polymer vaadin service-worker

我正在开发两个单独的项目:一个是Polymer app Service worker(搭建Polymer CLI),第二个app是Spring Boot Vaadin及其迭代库Vaadin Spring。这两个应用程序都在localhost:8080上运行。

在SpringBoot应用程序中,未经身份验证的用户被重定向到/login。验证成功后,应将用户重定向回/,而是重定向到网址http://localhost:8080/service-worker.js,其中显示默认的春季404页面。当我手动将网址更改回/时,SpringBoot应用程序再次正常运行。

  • 在我使用Polymer应用程序并切换到SpringBoot
  • 后发生此行为
  • 在Chrome和Firefox上测试
  • 清除浏览器缓存帮助
  • Vaadin也在使用hashbang

我找不到问题的根源(如果是Polymer或SpringBoot + Vaadin)并且每次清除缓存或手动更改URL都令人沮丧。

修改

我正在使用SavedRequestAwareVaadinAuthenticationSuccessHandler提供的默认处理程序Vaadin Spring。它应该重定向回以前的网址或后备网址/

@Bean(name = VaadinSharedSecurityConfiguration.VAADIN_AUTHENTICATION_SUCCESS_HANDLER_BEAN)
VaadinAuthenticationSuccessHandler vaadinAuthenticationSuccessHandler(@SuppressWarnings("SpringJavaAutowiringInspection") HttpService httpService, VaadinRedirectStrategy vaadinRedirectStrategy) {
    return new SavedRequestAwareVaadinAuthenticationSuccessHandler(httpService, vaadinRedirectStrategy, "/");
}

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。这是一个浏览器,你不能从你的应用程序或服务器端注意到。

我通过手动删除chrome中localhost地址的服务工作者来解决了这个问题。

您可以通过在chrome中打开开发人员工具来实现这一点 - >标签资源 - >服务人员
在特定网址上找到您的服务工作人员,例如http://localhost:8080/login并将其删除。

另一种方法是使用不同的localhost(localhost,127.0.0.1,127.0.0.2)IP地址来开发聚合物应用程序和Vadin应用程序。

答案 1 :(得分:1)

我把它抬高了。 转到locahost:8080 / login->检查(ctr + shift + I)->应用程序选项卡->选择Service Worker并注销sw.js 祝好运!

答案 2 :(得分:-1)

问题是需要访问“ service-worker.js”身份验证,并且由于每次更改都会自动访问此“ service-worker.js”并替换会话属性SPRING_SECURITY_SAVED_REQUEST,因此一种简单的解决方案是公众访问它:

 http.authorizeRequests()
        .antMatchers("/service-worker.js").permitAll()
        .antMatchers("/**").fullyAuthenticated().and()