2017-06-16 10 views
0

アプリケーションでは、ユーザー名/パスワードの検証を行います。検証が完了すると、資格情報はbase64を使用してコード化され、その後の残りの呼び出しのために要求ヘッダーに設定する必要があります。リクエストヘッダーの基本認証詳細の設定

リクエストヘッダに下記の設定が必要です。 Javaコードから以下のように設定を受けて

Authorization:Basic AQNLzR69OFTNJE8X 

javax.ws.rs.core.Response.status(200).entity("").header("Authorization:","Basic AQNLzR69OFTNJE8X").build(); 

とJavaScriptには、以下のように

sessionStorage.setItem('Authorization:', 'Basic AQNLzR69OFTNJE8X'); 

しかし、それに続く残りのサービスコールで設定しようとしました同じセッションでヘッダー要求が許可付きで設定されていないことがわかります。 JavascriptでAuthorizationを設定するためのいくつかのポインタを提供して、セッション全体で保持されるようにしてください。

+0

あなたは認証や承認をしようとしていますか?私はあなたがここで二つを混ぜているように感じる。 – quinz

+0

ヘッダの正しい名前は 'Authorization'です。コロン( ':')を含んではいけません**。 – VGR

答えて

1

認証の仕組みを誤解していると思います。 認証中にAuthorizationヘッダーを1回だけ送信することになっています。認証に成功すると、サーバーからセッションCookieが返され、セッションは認証済み(サーバー側)とマークされます。 ヘッダーの内容を返送することはありません。また、各要求を送信する必要はありません。

1)Authorizationヘッダーは自動的に追加されません。しかし、クッキーは自動的に送信されます。

2)資格情報を送信して返却しないでください。セキュリティ上の理由から、できるだけ輸送しないようにしてください。

3)あなたはsessionStorageにクレデンシャルを保存する必要はありませんが、これがパスワードの安全な場所であるかどうかはわかりませんが(疑いはありますが)、パスワードはB64でのみエンコードされています。それは可逆です。だからクリアテキスト(これはパスワードには悪い)です。

これが役立つと期待しています。

+0

あなたの入力をありがとう。サーバーから資格情報を検証しました。以下の点を明確にしてください。1.サーバーからセッションクッキーを返送する方法。 2.クッキーが自動的にどのように送信されるのか。既存の資料やコードへのポインタは参考になります。 –

+0

1)サーバは、 'Set-Cookie'ヘッダを使ってクライアントにクッキーを返します。サーバーによっては、これは自動的に行うことができます。自分で認証を行う場合は、自分のユーザセッション(彼のプリンシパル)に保存してください。 2)これはWebブラウザの基本です。要求がドメインと要求のパスと一致する場合は、持っているすべてのCookieが自動的に各要求に送信されます。 – sjahan