問題タブ [httpsession]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - GWT アプリの単体テスト時にコンテナー提供のオブジェクト (HttpSession など) をモックするにはどうすればよいですか?
現在、GWT アプリでサービス層 (すべての *Impl.java クラス) を単体テストしようとしています。問題は、コード内に、Httpsession によって提供されるオブジェクトを対象とする依存関係があることです。実際には、User オブジェクト (現在ログインしているユーザー) を httpSession に格納しています。
HttpSession (*Impl.java クラス) からそれを取得するために、私はこれを使用しています:
ユーザー user = ServiceUtil.getUser(getThreadLocalRequest().getSession());
単体テスト コードからこのオブジェクトをモックするにはどうすればよいですか?
どうもありがとう、
java - サーブレット/jspでデータベースからデータを表示する方法
jsp から車のリストを表示しようとしています。しかし、実行時に何も表示されない理由がわかりません:
サーブレット コード:
JSP コード:
私は何かが欠けていますか?理解できません。サーブレットを実行すると、jsp ページに車両のリストが表示されます。
私は休止状態 (正常に動作し、データベースに完全にアクセスする) を使用し、MVC モデルを使用しています。
ここに私のフォームがあります:
java - HTTPSession 参照がまだ有効かどうかをエレガントにチェックする
確立されたすべての HTTPSession オブジェクトをハッシュマップに保存しています。メッセージをキューに入れる前に HTTPSession がまだ有効かどうかを判断する方法はありますか?
例: ハッシュマップを繰り返し処理している場合、有効な HTTPSession オブジェクトのメッセージのみをキューに入れたいとします。
アップデート
誰かが興味を持っている場合は、gwt-comet を使用してこのロジックが必要でした。(Tomasz Nurkiewicz が指摘したように) 解決策は、このページの下部にあります。
gwt - Guiceを使用してGWTのサービス層(DAO)クラスにHttpSessionオブジェクトを@Injectする方法は?
私の GWT アプリにはこのような汚いコードがあり、私のサービス層のクラスのいくつかはHttpSessionオブジェクトに依存しています。たとえば、私の DAO の 1 つ (GWT-RPC エンドポイント) には、次のようなものがあります。
問題は、現在 RequestFactory を使用するようにコードを移行していることです。私の DAO は GWT-RPC エンドポイントではなくなります。そのため、RemoteServiceServlet を拡張する必要はありません ...
クラスが RemoteServiceServlet を拡張していないことを知って、HttpSession オブジェクトへの依存関係を(おそらくGuiceを使用して) 取得/注入する方法を知っていますか?
java - GAE/J でのユーザー要求処理のシリアル化ごとの保証
Google appengine のデフォルト モードでは、各インスタンスがシングル スレッド モードで実行されます。必要に応じて、新しい JVM インスタンスを生成することにより、同時要求を処理します。
ただし、新しいスイッチにより、appengine は同じインスタンスで複数のリクエストを並行して処理できます。
同じユーザーのリクエスト間でスレッドの安全性を確保するために、定期的にホストされている Java Web アプリケーションでこれまで行ってきたことは、http セッション (またはセッションに格納された値) で同期することでした。Spring もそれを行います (synchronizeOnSession
フラグを使用)。
これは、GAE では不可能です。なぜなら、HttpSession は (保存されているすべての変数と共に) 各 http 要求で常に新しいからです。つまり、ハッシュコードは常に異なります。そのため、同期しても何の効果もありません。ただし、これが可能であったとしても、appengine は、同じユーザーからの 2 つのリクエストが同じインスタンス (スティッキー セッションなど) によって処理されることを保証しません。
appengine の新しいフラグは、次のことを警告します。
同時リクエストを使用する場合は、有効にする前に、アプリケーション コードで適切なスレッド同期を使用する必要があります。
では、同じユーザーからの操作に関してアプリケーションがスレッド セーフであることを確認するにはどうすればよいでしょうか? 私は主に、ユーザーが http セッションに存在するデータに対して実行できるアクションに関心があります。私は明らかに、同じインスタンスで同じユーザーのリクエストを同期することだけに関心があります。
ありがとう
spring - Spring セキュリティの同時セッションと HttpSessionListener の問題
HttpSessionListener を実装しましたが、ログインしているユーザーが同時に 2 回目にログインする場合を除いて、正常に動作します。Spring は最初のセッションを正しく終了しますが、destroySession イベントは発生しません。少なくとも私のリスナーはそれを取得しません。
私の春のセキュリティは次のとおりです。
上記は、2 回目に同時にログインした場合、最初のセッションからユーザーをログアウトしますが、HttpSessionListener.sessionDestroyed は呼び出されません。
HttpSessionListener.sessionDestroyed は、通常、手動ログアウトとセッション タイムアウトのために呼び出されます。
web.xml にリスナー用の「委任プロキシ」があります: com.test.security.DelegatingHttpSessionEventListenerProxy
このリスナーは、my-servlet.xml で次のように定義された spring-bean に委譲します。
委任リスナーは次のようにコーディングされます。
私は spring-security-3.0.5 を使用しています。何が欠けているのか誰か教えてください。ありがとうございました。
c++ - Poco C++HTTPSessionFactoryの使用方法
HTTPとHTTPSの両方を処理するようにHTTPSessionFactoryを設定するための最良の最も簡単な方法はどのようになっていますか?HTTPSessionInstantiatorsを使用する必要があることはわかっていますが、短くて甘い例を実際に使用できます。ありがとう。
multithreading - Spring Security: 複数の ThreadLocals で同じ SecurityContext-instance が使用されていますが、これはどのように機能しますか?
Spring Security 3.0.5 と SecurityContext についていくつか質問があります。まず第一に、私が知っていることを結論付けようとします:
- SecurityContextHolder は SecurityContext を格納します
- リクエスト間、SecurityContext は HttpSession に格納されます
- リクエストの開始: SecurityContextHolder は HttpSession から SecurityContext を取得します
リクエストの終わり: SecurityContextHolder は SecurityContext を HttpSession に入れます
リクエスト中、サーバー上で、SecurityContextHolder は ThreadLocal を使用します。アプリケーション (同じ要求) のどこでも、SecurityContext にアクセスできます。
今私の質問....
--> 2 つの要求: SecurityContext インスタンスが共有されます
これはどのように作動しますか?つまり、SecurityContextHolder はリクエストごとに ThreadLocal を使用します。2 リクエスト = 2 ThreadLocals
各リクエストは次のことを行います: HttpSession からの getSessionAttribute (SecurityContext) それらが SecurityContext で機能するとどうなりますか? SecurityContext はすべての ThreadLocals で変更されていますか?
私の知る限り:はい(??)
これはどのように作動しますか?同じインスタンスでどのように作業できますか? つまり、2 つの異なる ThreadLocals を持つ 2 つの異なるスレッドが同じインスタンスでどのように機能するのか想像できませんか?
API (ThreadLocal): このクラスはスレッドローカル変数を提供します。これらの変数は、(get メソッドまたは set メソッドを介して) アクセスする各スレッドが独自の、独立して初期化された変数のコピーを持っているという点で、通常の変数とは異なります。
つまり、それだけです:コピー!多分私は間違っていて、2 つのスレッドが同じ SecurityContext で動作することはできないのでしょうか? しかし、Spring Security Documentation はそう言っています!
誰かが私にそれを説明できれば素晴らしいでしょう:-)ありがとう!
grails - Grails の httpSession
現在のセッションのドメイン クラス User にアクセスする必要があります。次のコードが機能します。
しかし、ID が 1 のユーザーを明示的に取得する (User.get(1)) 代わりに、現在のセッションのユーザーにアクセスする必要があります。次のコードを試しましたが、うまくいきません。
私はまだ httpSession の概念を完全に理解するのに苦労しているので、少し助けていただければ幸いです。少し早いですがお礼を。
アップデート
私の UserController では、認証は次のようになります。
java - HttpSessionは属性を参照または値で保存しますか?
サーバー アプリケーションで HttpSession を使用しています。セッション セットの属性についても同様です。次の私の質問: セッション セットの属性の方法 - 参照または値による。
Java ヒープ領域の例外と RAM の節約ができない理由を恐れて質問します。
例: ステートレスarray1
を作成し、これをさまざまなセッションの属性として設定するとします。この場合、すべてのセッションはarray1
「シングルトン」インスタンスとして機能するか、そうでない可能性があります
ありがとう!