我对使用 Spring 和 Spring 安全性很陌生,所以问题可能很小。
当前设置:
我们使用 Vaadin、Spring 和 Keycloak 制作了一个应用程序。现在据我了解,Spring 安全性和 Keycloak 可以一起工作以使登录用户可以访问或不访问页面。到目前为止,只要您登录,我们就有多个可以正常工作的页面。
目标:
现在我们要添加一个不需要登录的公共页面“硬件”。这似乎比应该的更难?硬件 URL 类似于 /hardware/(有效序列号)。/hardware 路径本身不存在,也从不作为路径使用,只能与序列号结合使用!
尝试:
在我们的 SecurityConfig 中,我们有以下代码:
http.csrf()
.disable()
.logout()
.logoutUrl("/logout")
.permitAll(false)
.and().authorizeRequests().antMatchers("/vaadinServlet/UIDL/**").permitAll()
.and().authorizeRequests().antMatchers("/vaadinServlet/HEARTBEAT/**").permitAll()
.and().authorizeRequests().antMatchers("/hardware/**").permitAll()
.and().authorizeRequests().antMatchers("/**").hasAuthority(Privilege.AUTHENTICATED);
但是现在在我们的公共页面“硬件”上,我们仍然遇到了厄运的“服务器连接丢失,试图重新连接......”错误。是否有可能某个地方 Spring 或 Vaadin 或 Keycloak 正在调用其他一些导致该页面失败的东西,或者这个配置是错误的?
或者也许有关于如何调试这个的一般提示?一个多星期以来,我们一直在努力克服这个问题,但进展绝对为零……
问候,
阿诺德