私は春のセキュリティを使用しているアプリケーションに取り組んできました。私は春のセキュリティにまったく慣れていないため、thisおよびthisに似た問題が発生しました。しかし、それは少し違います。
私はこの方法で手動認証を行います:
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password);
Authentication authentication = this.authenticationProvider.authenticate(token);
SecurityContextHolder.getContext().setAuthentication(authentication);
ページが読み込まれると、すべて問題ないようです。しかし、アプリケーションをナビゲートすると、SecurityContext が失われているようです。(ユーザーがログインしている場合、ステータスバーにユーザー名が表示されます)
私はこのようにコンテキストを取得します:
SecurityContextHolder.getContext()
さらに、コンテキストが完全に失われるわけではなく、正しくロードされないことがあります。1 つのセッションに複数のコンテキストがあるようです (HttpSessionListener があり、sessionCreated が 1 回だけ起動します)。コンテキストのオブジェクト ハッシュを出力してみましたが、いくつかの異なるハッシュが繰り返されていることに気付きました。接続しているユーザーと一緒にいるのは 1 つだけです。他のユーザーはそうではありません。
したがって、1 つのセッションに複数のコンテキストがあると仮定します (これが可能であれば)。すべてを明確に説明したことを願っています。誰かが私に何か助けてくれたら幸いです。