2017-06-17 6 views
0

私はJerseyを使って残りの認証エンドポイントを構築したい。今、私は消費者のログイン+渡し、さらに通信のためのトークンを発行APIを構築する必要があり、javaジャージログイン/パスワードを消費するエンドポイントを構築する

@POST @Produces(MediaType.APPLICATION_JSON) @Path("/login") 
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public Response login(
      @FormParam("basicbtoatoken") String basicbtoatoken) { 
..... 
} 

をしかし、私はすでに、ページ上の通常のフォームのためにそれを行っています。どのようにジャージーでそれを正しく行うには? login + passを他のフィールドと同様にオープンモードで渡し、それに応じて処理することはできますか?それとも何かのトリックがありますか?

答えて

1

デッドシンプル:基本認証のContainerRequestFilter。私はいくつかのグーグルで参照実装を見つけることができると確信しています。そうでなければ、基本認証ベース64は、信任状を許可要求ヘッダにエンコードする。バックエンドの資格情報ストアは、認証要求ごとにヒットします。

これは通常、oauth2プロトコルで解決されます。クライアントは様々な手段によって有効なベアラトークンを取得する。これは、承認ヘッダーに追加された短命のトークンです。それを解読する信頼できる鍵(通常はJWT)で暗号化され、有効期限などの基本的な健全性を検査することは、認証に十分であると考えられます。資格情報ストアは、このトークンをリフレッシュする必要がある場合にのみ頻繁に使用されます(15分から数時間の間に何かを見たことがあります)

関連する問題