EventCondition インターフェース
使用方法
evaluate メソッドは、トランザクションセキュリティポリシーで監視されているリアルタイムイベントが発生するとコールされます。通常の実装では、最初にイベントから関心のある項目を選択します。その項目をテストして、監視されている条件を満たすどうか確認します。条件を満たす場合、メソッドは true を返します。
たとえば、ユーザーが照会したリード��コード数が 1,000 件を超えたときにトリガーされるトランザクションセキュリティポリシーがあるとします。各 API イベントについて、evaluate メソッドは、RowsProcessed 値が 1,000 を超えるかどうかと、QueriedEntities 値に「Lead」が含まれるかどうかをチェックします。該当する場合は、true が返されます。
ポリシー条件インターフェースが正しく機能することを確認するために、テストクラスを用意することをお勧めします。ポリシーを Sandbox から本番組織に移動するか、変更セットと共に移動するか、または他の方法で移動するかに関係なくテストが必要です。たとえば、ポリシーを本番環境に移行する前に、開発環境でポリシーをテストします。
Apex のトランザクションセキュリティポリシーのテストについての詳細は、「トランザクションセキュリティの Apex テスト」を参照してください。
EventCondition メソッド
EventCondition のメソッドは次のとおりです。
evaluate(event)
署名
public Boolean evaluate(SObject event)
パラメーター
- var1
- 型: SObject
- トランザクションセキュリティポリシーに対して確認するイベント。
戻り値
型: Boolean
ポリシーがトリガーされる場合、true が返されます。たとえば、ユーザーをシングルログインセッションに限定するポリシーがあるとします。ユーザーが再ログインを試みると、ポリシーによりログインがブロックされ、その LoginEvent の Status、PolicyId、および PolicyOutcome 項目が更新されます。また、Salesforce システム管理者にもメール通知が送信されます。evaluate メソッドは、ログインイベントのみを確認し、ユーザーの 2 つ目のログインの試みである場合に true を返します。
システムはアクションと通知を実行しますが、evaluate メソッドは実行しません。
EventCondition の実装例
これは、TxnSecurity.EventCondition インターフェースの実装例を示しています。ユーザーが取引先オブジェクトを照会すると、トランザクションセキュリティポリシーがトリガーされます。
1global class BlockAccountQueriesEventCondition implements TxnSecurity.EventCondition {
2
3 public boolean evaluate(SObject event) {
4 switch on event {
5 when ApiEvent apiEvent {
6 return handleApiEvent(apiEvent);
7 }
8 when null {
9 // Trigger action if event is null
10 return true;
11 }
12 when else {
13 // Trigger action for unhandled events
14 return true;
15 }
16 }
17 }
18
19 private boolean handleApiEvent(ApiEvent apiEvent){
20 if(apiEvent.QueriedEntities.contains('Account')){
21 return true;
22 }
23 return false;
24 }
25}詳細は、「Apex トランザクションセキュリティの高度な実装例」を参照してください。