0

タイトルが示すように、Spring MVC セキュリティの実装があり、うまく機能しますが、Web アプリケーション内でユーザー ログインを管理したいと考えています。

「クライアントIPアドレス、ログイン時間、ユーザーの最後のアクティビティ、ログインステータス(ログアウトしたい場合)」などのセッション情報を追加する必要があります

多くのフォーラム、例、さらには春のドキュメントを読みましたが、必要なものが見つかりませんでした。

セキュリティ xml に Bean を追加して、私の LoginController に @Resource sessionManager を追加しようとしても、504 エラーが発生しました。

別の質問: クライアントの IP アドレスを取得する方法はありますか? 私は今jqueryを使用して別のWebサイトに投稿することでそれを取得しています...しかし、それはかなり汚いです。

前もって感謝します。

4

1 に答える 1

0

「すべてのセッション」で操作するには、セッションよりも「高く」なる必要があります。これは、ApplicationContext を意味します。

ServletContextListener を拡張し、リスナー定義を web.xml に追加することで、少し前に似たようなことをしました。

基本的に: contextInitialized(ServletContextEvent event) でリスナーのインスタンスを追加します

event.getServletContext().setAttribute("myContextListener", this);

何かが必要なときは、コンテキストからオブジェクトを取得し、いくつかのバリエーションを使用します

(MyContextListener)request.getSession().getServletContext()
    .getAttribute("myContextListener");

「The Spring Way」(tm) のやり方については、まあ、まだわかりません。

于 2013-03-27T19:35:19.687 に答える