2016-03-29 17 views

答えて

1

私は1つで質問のいずれかをお答えします:

の1-

(あなたは、Linux上にある場合、インスタンスのためのiptablesを使用して)これは

2 -

お使いのOSのファイアウォールを使用して行われるべきです

ファイアウォールを使用してアプリケーションへのアクセスを制限する場合は、これを行う必要はありません。しかし、あなたが本当に必要な場合:

authentication REST APIを無効にすることはできないので、これを行うには良い方法はありません。次のように私が提案する回避策がある(しかし、私はActive Directoryを使用している場合、それがうまくいくとは思わない):

function login(request,response){ 
     var ip = request.remoteAddress; 

     if(! isIPAuthorized(ip)){ 
         response.statusCode = 403; 
         return; 
     } 

     sessionStorage["login-request"] = true; 
     /* 
     * Your login code here 
     * For instance you can use loginByPassword, createUserSession .. 
     */ 
     sessionStorage["login-request"] = false; 
} 
:あなたのような何かをどこ

  • は、認証/loginのカスタム要求ハンドラを追加します。

  • ログイン要求がsessionStorageをチェックして、あなたのカスタムログイン機能やないから来たかどうかをチェックすることができますLogin Listener内側:

    if(!sessionStorage["login-request"]){ 
         return { 
           "error" : 1024, 
           "errorMessage" : "Unautorized Login Attempt" 
         } 
    } 
    

この方法では、IPがチェックされていないデフォルトのREST認証APIを使用したログイン試行は拒否されます。

+0

あなたの応答Hamzaに感謝します。ソリューションのカスタムログインハンドラ(required.jsファイル内)の 'request'オブジェクトにアクセスする方法はありますか? – Stefan

+0

今日はできません。これをチームと議論して、現在のスレッドに添付されているリクエストに[HttpRequest](http://doc.wakanda.org/home2.en)としてアクセスするための 'httpServer.getRequest()'のようなものがあるかどうかを確認します。 .html#/ HTTP-Request-Handlers/HTTPRequest.201-803366.en.html) – hamzahik

+0

これはすばらしいことであり、多くの可能性を開くでしょう。ありがとうございます – Stefan

0

に対する(カスタムログイン)は、プロジェクト設定ファイル(Settings.waSettings)でCross-origin resource sharingを有効にし、あなたがからドメイン名またはIPアドレスのリストを定義する必要があります外部ページが許可される場所CORS経由でWakanda Serverにデータ要求を送信します。複数のドメイン属性を追加してホワイトリストを作成することができます。

0

(他のすべてをブロックしながら)IPアドレスの特定の範囲に任意アプリケーションを公開するための最良の方法は、です。ソフトウェアベースのファイアウォール(またはなど)でも、ハードウェアベースのファイアウォール(Cisco ASAなど)でもかまいません。ファイアウォールを使用すると、質問の第2部分の必要性が完全に緩和されます。

関連する問題