2017-06-15 10 views
0

私はj_security_checkとldapを利用して認証を行うjavaプロジェクトを持っています。今私の雇用者は、提供されたWebサービスを使用して認証に変更したいと考えています。彼らは私に与えたものは、実際には以下のようなリンクです "http://11.111.111.111/ADManager/ADlogin.asmx" 私はjavaとwebservice.Allの初心者です。私たちがwebserviceにいくつかのデータを提供すればそれは応答を与えるでしょう。私の疑問はどのようにWebサービスを消費するJavaでのログインを達成するには?

  1. 提供したリンクを消費するログインを作成することはできますか?
  2. 私は詳細情報を求める必要がありますか?
  3. 私のJavaプロジェクトですでに設定されているj_security_checkとldapを置き換えるのは可能でしょうか?

P.S:私にこの仕事を割り当てた人はあまり知識もないようです。

答えて

0

短い答えができます。

各Webリソースは(サーブレット)フィルタにより保護されています。あなたは次の操作を行う必要があり

このフィルタは、各受信要求をチェックし、httpヘッダー上にある必要のあるトークンを検証します。トークンが有効であれば、要求は提供されます。トークンが無効な場合、フィルタはhttp401を無認可に戻します。次に、loinページにリダイレクトします。残りのサービスと

ログイン:

1)ユーザー名/パスワードフィールドにカスタムログインページを作成します。

2)残りのWebサービスを作成し、ユーザー名とパスワードを受け取ります。 OpenAMのような外部アクセス管理インフラストラクチャに対して資格情報をチェックします。

3)まずauth(username、password)rest apiを呼び出してauthトークンを取得します。指定された資格情報が正しければ、認証クッキーをHTTP 200応答コードでクライアントに送り返します。

4)次に、保護された残りのapiを呼び出すことができます。毎回あなたの要求に応じて認証クッキーを送信する必要があります。

5)サーブレットフィルタ(または同様のもの)は、受信した各要求をチェックし、トークンを検証します。トークンが有効であれば、リクエストは残りのメソッドに進みます。http 401/403レスポンスを生成する必要がない場合は、リクエストが転送されます。

独自の認証レイヤーを作成しないことをお勧めします。既存のもの、たとえばOpenAMを使用してください。

このforum topicはすべてあなたのことを説明します。

+0

あなたが気づいたように、私は全部の初心者ですので、私は愚かな疑念のために私を許しています。ステップ2では、Webサービスを作成する必要があると言いましたが、この場合はすでにWebサービスがあり、Webサービスに私が与えたリンクは "http://11.111.111.111/ADManager/ADlogin"です。 asmx ** "私は上記のリンクに私のユーザ名とパスワードを渡すべきですか?はいの場合、どうですか?ウェブサービスがどのように私が提供した詳細とそれがどのように返答するかを受け入れる方法について、雇用主に尋ねなければなりませんか? –

+0

あなたのWSがどのように動作するかについてはわかりませんが、通常の認証サービスは資格情報(ユーザー名/パスワード)を受け取り、成功した検証の後、httpヘッダーにトークンを付けて元の要求ページにHTTPリダイレクトを返します。トークンは、クライアントのWebブラウザによって各要求に追加され、ユーザーが要求されたWebリソースを表示できるようにする前にフィルタによって検証されます。トークンが無効です。HTTP 401がクライアントブラウザに返されます。認証エラーの場合は、403が返されます。 – zappee

関連する問題