2017-03-14 20 views
0

私はTomcatの新機能ですので、親切にしてください。Tomcatヘッダーにrequest.getHeader( "authorization")がありません

私の目標のようなURLから基本的なHTML認証からユーザ名を取得するために、次のとおりです。

http://username:[email protected]/index.jsp 

(私は、ユーザー名の値が欲しい)

私は、これは認証ヘッダーをエンコードしようとしている実感します、符号化されているのはuser:passです。

私はヘッダをリードバック私のJSPページに基本認証情報を送信しようとすると何の許可ヘッダー(request.getHeader("authorization")

がない私は、私のように、まだtomcatので基本認証をオンにしていませんエンコードされた値を最初に取得しようとしています。しかし、私は実際に何かの基本認証を使用していない場合でも、ヘッダーがまだそこにあるはずだと思います。

どうすればよいですか? request.getHeader("authorization");tomcatで動作させるにはどうすればよいですか?

私はTomcatにとって非常に新しく、私はどこかの設定を見落としていると思います。

+0

は、これは私がJDBC(server.xmlの)経由で基本認証を追加する方法です= "JDBC:MySQLの://172.16.254.100:3306/DB_NAME" \t connectionNameの= "DB_USER" \t connectionPassword = "DB_PASS" \t USERTABLE = "db_users_table" \t userNameCol = "db_user_col" \t userCredCol = "db_pass_col " \t userRoleTable =" db_role_table " \t roleNameCol = "db_role_col"> \t \t –

答えて

1

URLでエンコードされた資格情報を確認してください。here @misterbenが答え

に言及したようブラウザは、最初の要求のための 資格情報を無視して、http://example.com/index.htmlを要求します。サーバーは基本応答が必要であることを示す401応答 を出します。

ので、サーバー側からそれを見て、あなたのJSPページは、ブラウザによって最初の要求での認証資格情報を受信しません。サーバーは401応答を送信する必要があります。

response.sendError(401); 

基本認証が有効になると、これで動作するはずです。 <レルムクラス名= "org.apache.catalina.realm.JDBCRealm" \t DRIVERNAME = "はcom.mysql.jdbc.Driver" \t connectionURL:

+0

私はTomcatを9に基本的な認証とJDBCレルムを有効にし、私は認証ヘッダーを受け取るようになりましたが、401を送信するだけでは機能しませんでした。 –

関連する問題