2017-07-10 1 views
0

私はシングルサインオン機能を実装しています。私はJavaアプリケーション(POST要求)から入力パラメータを取るColdFusionアプリケーションを持っています。私がする必要があるのは、ユーザーがCFアプリケーションにアクセスできない場合に、ユーザーがアクセス権を持っているかどうかを示す説明と、失敗した理由を示す戻りコードです。以下のような 何か: enter image description hereHTTPステータスコードと応答メッセージをColdFusionのクライアントに送信するにはどうすればよいですか?

私はCFCを作成し、Javaユーザが自分のCFアプリケーションにユーザー名、得意先に通過できるようにするAPIとしてこれを提供してきました。 返信応答ロジックを同じファイルに書き込む必要はありますか?エラーコードを投げる(cfthrow)関数と同じです。

または私は「cfheaderの」を使用することができかもしれ....このような何か:

<cfif form.CustomerId EQ queryname.CustID> 
<CFHEADER 
    STATUSCODE="200" 
    STATUSTEXT="Success"> 

<cfelse> 
<CFHEADER 
    STATUSCODE="400" 
    STATUSTEXT="Insufficient Input"> 
</cfif> 

は、誰もがここで私を助けてくださいことはできますか?

を使用でき
+0

あなたのメッセージが普通の人に読まれる場合は、単に情報を入力してください。状態コードや一般的に理解されていないもので謝らないでください。 –

+0

@ DanBracuk:実際には、ステータスメッセージはシステムによって読み込まれ、ステータスに基づいて、適切なテーブルが更新されます。 – Vasu

+1

なぜ「顧客IDは存在しない」のために「400」を返しますが、「404」は見つかりません」(https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10 4.5)?同様に、なぜ「無効なパスワード」400で、[401(無認可)]ではないのですか(https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1)、「ユーザーアカウントがロックされました」401と[403(禁止)](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.3)? – MT0

答えて

1

component restpath = "your/rest/path" rest="true" 
{ 
    remote void function errorTest() 
    httpmethod = "GET" 
    restpath = "" 
    { 
    cfheader(
     statuscode = 401, 
     statustext = "Invalid Password" 
    ); 

    // or 

    restSetResponse({ 
     status = 401, 
     headers = { explanation = "Invalid Password" } 
    }); 

    // or, using Java 

    getPageContext() 
     .getResponse() 
     .getResponse() 
     .sendError(JavaCast('int', 401), "Invalid Password"); 

    // or, using the deprecated setStatus(int,string) method in Java 

    getPageContext() 
     .getResponse() 
     .getResponse() 
     .setStatus(JavaCast('int', 401), "Invalid Password"); 
    } 
} 

注:私は、これは代わりに、メッセージとカスタムヘッダを返す直接restSetResponse()を使用してメッセージを設定する方法を発見していません。

関連する問題