問題タブ [interceptor]
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.
c# - DynamicProxy でインターフェイス メソッドのみをインターセプトする
私はこのようなインターフェースを手に入れました
そのインターフェースを実装し、別のメソッドも持つクラス
そしてインターセプター
IService に存在する Service のメソッドのみをインターセプトしたい (つまり、InterceptedMethod() をインターセプトしたいが SomeMethod() はインターセプトしたくない) が、IProxyGenerationHook からの ShouldInterceptMethod を使用したくない。
このようにできますが、インターフェイスを返すため、このオブジェクトで SomeMethod を呼び出すことはできません
機能することの1つは、仮想を SomeMethod() から削除し、次のようにすることです
しかし、私はこの解決策が好きではありません。
インターフェイスを変更するたびに、ShouldInterceptMethod も変更する必要があるため、IProxyGenerationHook から ShouldInterceptMethod を使用するのは好きではありません。また、いつか誰かがメソッド名をリファクタリングすることができ、メソッドはもうインターセプトされません。
これを行う他の方法はありますか?
struts2 - トークンセッショントークンを使用してフォームの重複送信を防止しますか?
トークンセッションを使用してフォームの重複送信を防止していますが、サーバーに初めてリクエストを行うと、常にエラーページが表示されます
"<s:token />"
<s:form>
との間の成功ページに追加されましたが</s:form>
、正しく実行されません。
plzは私がそれらを解決するのを助けます、重複したフォーム送信を防ぐ別の方法はありますか?提案をお待ちしております、ありがとうございました。:)
structuremap - StructureMap 202 - なぜ?
OK、SM に登録している型にプロパティを設定しようとしています。
コンポーネントの 1 つにあるレジストリのコードを次に示します。このレジストリは、コンソール アプリからの構成中に追加されます。インスタンス AutoMandatoryEndorsementAggregator オブジェクトの EndorsementSpecs プロパティにアクセスしようとすると、202 が返されます。興味深いのは、コンソール アプリから GetAllInstances>() を呼び出すことができ、問題なく解決されることです。202 を引き起こしている OnCreation 内からこのコードにアクセスすることについて何かありますか? WhatDoIHave() で期待するすべてを確認できます。同じ結果で TypeInterceptor も試しました。
session - Struts がセッション トークンを取得する方法をどの時点で変更する必要がありますか?
Cookie を使用せずにセッション トークンを Flex クライアントから Struts バックエンドに送信する別の方法を見つける必要があるようです。
セッション トークンをリクエストのペイロードに入れるとしたら、どの時点で Struts の動作をカスタマイズして、既存のセッション処理をできるだけ再利用できるようにする必要がありますか? 特に、セキュリティ対策 (トークンを IP に結び付けるなど) や構成パラメーター (セッションの有効期限など) を再実装したくありません。
デフォルト スタックのかなり早い段階に CreateSession インターセプタがありますが、これをサブクラス化されたバージョンと交換する必要がありますか?
java - Struts どのメソッドが呼び出されていますか?
インターセプター内からアクションで呼び出されるメソッドの名前を取得するにはどうすればよいですか?
spring - カスタムメソッドインターセプターでBean名にアクセスする
データベースで実行されるBeanの名前とメソッドを記述したいので、カスタムインターセプターを作成することにしました。ただし、Bean名にアクセスできません。
ExposeBeanNameAdvisorsが解決策の1つである可能性がありますが、名前を設定するポイントを見つけることができませんでした。
誰かがこれについての考えを持っていますか?どうもありがとう!!
asp.net - ドメインコンテキストでインターセプターを休止状態にする
Hibernate 2.1 で監査インターセプターを作成し、それにドメイン コンテキストを渡すことは (クリーンな方法で) 可能ですか?
私が達成したいのは、日時を設定することです(簡単に行うことができます-簡単なグーグルの後に記事をロードします)が、アイテムを作成したユーザー、またはまだ何も見つけていないエンティティを変更したユーザーなどのオブジェクトを設定しますこれはこれをカバーします。
アプリケーションのリクエスト/起動時 (nhibernate インターセプターを登録する必要がある場所) でオブジェクトがわからないため、適切な回避策を知っている人はいますか?
前もってありがとう、マークH
javascript - クライアント側 (ブラウザー) の AJAX 要求/応答のペアにインターセプター パターンをどのように実装しますか?
実際の使用例から始めましょう。
セッションの期限切れが原因で、サーバー側の認証フィルターが AJAX 要求をログイン ページにリダイレクトしようとすると、DWRが混乱します。いくつかのフィルターを追加して、
- HTTP ステータス コードが3xxに等しいリクエストは、 window.location = ...login.htmlのように、クライアント側のリダイレクトを実行します。
- ステータス コードが2xxに等しいリクエストは、変更されずに、DWR などの登録済みハンドラに転送されます。
- 4xxなどの他のコードは、深淵に消える代わりにアラートをトリガーする可能性があります。
このタイプの機能が役立つ理由を説明する必要はないでしょう。ほとんどのサーバー側 Web フレームワークは、クライアントでインターセプター パターンが必要な場合と同様の理由で、インターセプター パターンをサポートしています。
1 つの (おそらく悪い) 実装では、未加工の XMLHttpRequest オブジェクトを、いくつかのフィルター関数を受け入れるプロキシーにラップする必要があります。jQuery、Prototype、ExtJS などはすべて、ネイティブ ブラウザー AJAX オブジェクトを既にラップしているため、これは 1 つの追加ステップになる可能性があります。
これはネイティブに実装できますか? 技術的な課題は何ですか? このようなことは以前に行われたことがありますか?
grails - Grails/Groovyでのメソッド呼び出しのインターセプトまたは名前変更
Grailsアプリケーションでメソッド呼び出し(ドメインクラスのafterInsert())をインターセプトしようとしています。プラグインのdoWithDynamicMethodsクロージャーには、次のものがあります。
しかし、次のエラーが発生します。
また、dc.metaClass。 "afterInsert_old" .invoke(delegate、new Object [0])を使用して呼び出しようとしましたが、次のようになります。
私は何が間違っているのですか?引数を取らないメソッドを呼び出すにはどうすればよいですか?
私はAOPについて知っており、例としてGrailsAuditLoggingプラグインも見てきました。ただし、私が知る限り、適切なタイミングでトリガーされる新しいユーザー作成メソッドを追加します。ユーザーが何も心配する必要がなく、元のafterInsert()(またはそれがどのようなメソッドでも)の実装を破棄したくないように、コードを自動的に挿入したいと思います。
また、公開されているサービスメソッドにもセキュリティを注入するために同じことをしたいと思います。ただし、私が読んだところによると、BeanWrapperが原因で、またサービスが常にリロードされるため、機能しません。誰かがこれを私にもっとよく説明できますか?
前もって感謝します。
nhibernate - nhibernate はクラスを動的にバインドします
私はこの記事を読み、実行時にマッピングを動的に変更して、親オブジェクトの値に 1 対多で依存する別のテーブルにバインドする方法を探しています。
これが私のマッピングです
と
記事に記載されているように、インターセプターを使用してエンティティ名を変更できるはずです
ここで、問題は 2 つあります。
第一に、セッションを開くときに宣言したにもかかわらず、このインターセプターを起動できないようです.第二に、私は完全に怒って吠えています.これは決してうまくいきませんか?