私は 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 のいずれかが、このページを失敗させる他の何かを呼び出している可能性がありますか、それともこの構成が間違っている可能性がありますか?
または、これをデバッグする方法に関する一般的なヒントはありますか? 私たちはこれを1週間以上乗り越えようとしてきましたが、まったく進歩がありません....
よろしく、
アルヌード