この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

Auth の例外

Auth 名前空間には、いくつかの例外クラスが含まれています。

すべての例外クラスは、エラーメッセージや例外型を返す組込みメソッドをサポートしています。「Exception クラスおよび組み込み例外」を参照してください。

Auth 名前空間には、次の例外があります。

例外 説明
Auth.​AuthProviderPluginException この例外を発生させて、認証プロバイダプラグインを使用しているときにエラーが発生したことを示します。ユーザにカスタムエラーメッセージを表示するために使用します。エラーメッセージを取得してデバッグログに書き込むには、String getMessage() を使用します。
Auth.​ConnectedAppPlugin​Exception この例外を発生させて、接続アプリケーションでカスタム動作の実行中にエラーが発生したことを示します。エラーメッセージを取得してデバッグログに書き込むには、String getMessage() を使用します。
Auth.DiscoveryCustomErrorException この例外を発生させて、検出ログインページと設定可能なセルフ登録ページに表示するエラーメッセージをカスタマイズします。エラーメッセージには 200 文字まで入力可能です。エラーメッセージをローカライズするには、カスタムエラー例外を使用します。
この例外を次のように使用します。
  • Auth.MyDomainLoginDiscoveryHandler に含めると、[私のドメイン] ログインページにカスタムエラーメッセージが表示されます。
  • Auth.LoginDiscoveryHandler に含めると、Experience Cloud サイトログインページにエラーメッセージが表示されます。
  • Auth.ConfigurableSelfRegHandler に含めると、Experience Cloud サイトセルフ登録の検証ページにエラーメッセージが表示されます。
検証ページは、[メール] または [テキストメッセージ] のいずれかの確認方法を指定したセルフ登録を設定した場合に表示されます。確認方法を指定したサインアップを設定しなかった場合、セルフ登録ページのエラーメッセージが表示されます。

エラーメッセージを取得してデバッグログに書き込むには、String getMessage() を使用します。

Auth.JWTBearerTokenExchange.​JWTBearerTokenExchangeException​ この例外を発生させて、JWTBearerTokenExchange クラスのトークンエンドポイントからの応答で発生した問題を示します。この例外は、OAuth 2.0 JWT ベアラートークンフロー中に、HTTP 応答が次の場合に発生します。
  • アクセストークンを返すことに失敗した
  • JSON 形式ではない
  • 「OK」成功コード 200 以外の応答コードを返した

エラーメッセージを取得してデバッグログに書き込むには、String getMessage() を使用します。

Auth.LoginDiscoveryException この例外を発生させて、ログイン検出ハンドラを実行しているときにエラーが発生したことを示します。例については、「LoginDiscoveryHandler の実��例」を参照してください。エラーメッセージを取得してデバッグログに書き込むには、String getMessage() を使用します。
Auth.VerificationException この例外を発生させて、渡されたポリシ��に基づいて検証をトリガします。この例外は、Apex トリガまたは Visualforce コントローラで発生させることができます。可能な場合は自動的に検証エンドポイントに移動します。

この例外はキャッチできません。この例外では、即座に検証がトリガされます。

メモ

次の例では、AuthProviderPluginException を使用して、カスタム認証プロバイダ実装内にカスタム例外をスローしています。エンドユーザに特定のメッセージを表示する場合、この例外を使用してエラーメッセージをパラメータとして渡します。別の例外を使用した場合、ユーザには標準の Salesforce エラーメッセージが表示されます。

1global override Auth.OAuthRefreshResult refresh(Map<string,string> authProviderConfiguration,String refreshToken){
2            HttpRequest req = new HttpRequest();
3            String accessToken = null;
4            String error  = null;
5            try {
6            
7            // DEVELOPER TODO: Make a refresh token flow using refreshToken passed 
8            // in as an argument to get the new access token
9            // accessToken = ... 
10            } catch (System.CalloutException e) {
11            error = e.getMessage();
12            }
13            catch(Exception e) {
14            error = e.getMessage();
15            throw new Auth.AuthProviderPluginException('My custom error');
16            }
17            
18            return new Auth.OAuthRefreshResult(accessToken,refreshToken, error);                
19            }

次の例では、ユーザが高保証セッションを使用せずにアカウントの作成を試みた場合に Auth.VerificationException を使用して検証をトリガします。

1trigger testTrigger on Account (before insert) {
2    Map<String, String> sessionMap = auth.SessionManagement.getCurrentSession();
3    if(!sessionMap.get('SessionSecurityLevel').equals('HIGH_ASSURANCE')) {
4        throw new Auth.VerificationException(
5            Auth.VerificationPolicy.HIGH_ASSURANCE, 'Insert Account');
6    }
7}