0
私はサーブレットアプリケーションにデータソースレルムセキュリティを設定しました。リソースへの最初の要求に対してのみ機能します。より多くのリクエストのために私は資格情報を必要としません。 なぜそうですか、初めてのことではなく、特定のリソースへのすべてのリクエストについて、私に尋ねるようにTomcatを設定することができます。tomcatのセキュリティレルムは最初のリクエストでのみ機能します
私を助けてください。
私はサーブレットアプリケーションにデータソースレルムセキュリティを設定しました。リソースへの最初の要求に対してのみ機能します。より多くのリクエストのために私は資格情報を必要としません。 なぜそうですか、初めてのことではなく、特定のリソースへのすべてのリクエストについて、私に尋ねるようにTomcatを設定することができます。tomcatのセキュリティレルムは最初のリクエストでのみ機能します
私を助けてください。
インポートするデータベースが静的であること、つまりセッションが1つであることを確認してください。あなたは、次の手順のように、すべての詳細については、スクリプトを作成することができ : は、スクリプト呼び出しcreatedb.sqlを作成し、次のデータを挿入します。データベースとユーザーをMySQLと作成するために
DROP DATABASE IF EXISTS tomcat_realm;
CREATE DATABASE tomcat_realm;
USE tomcat_realm;
CREATE TABLE tomcat_users (
user_name varchar(20) NOT NULL PRIMARY KEY,
password varchar(250) NOT NULL
);
CREATE TABLE tomcat_roles (
user_name varchar(20) NOT NULL,
role_name varchar(20) NOT NULL,
PRIMARY KEY (user_name, role_name)
);
INSERT INTO tomcat_users (user_name, password) VALUES('someuser', '5f4dcc3b5aa765d61d8327deb882cf99');
INSERT INTO tomcat_roles (user_name, role_name) VALUES ('someuser', 'authenticated');
COMMIT;
ゴー:
$ mysql -u root -p
mysql> SOURCE ~/Documents/createdb.sql
mysql> use tomcat_realm;
mysql> show tables;
mysql> CREATE USER 'realm_access'@'localhost' IDENTIFIED BY 'password';
私はデータベースに問題はありません、私の問題は、Tomcatは、URLへのすべての要求の資格情報を要求していないです。それはちょうど最初の要求のために働くと私は正しいユーザーを入力し、サーバーにログインし、同じユーザーからの次の要求では、資格情報を要求しないでください。ログされたユーザーからのものであっても、サーバーごとに要求ごとに資格情報を要求する必要があります。私は何をすべきか?誰でも助けてください – Gareth
私はあなたの意見を理解しました。最初に教えたように、初めて資格情報を要求し、ユーザーがログインして再度アプリケーションにアクセスすると、資格情報が要求されませんでした。それは期待される動作です。 – poojagupta
tomcat realm機能は次のルールに従っているため、ユーザーが保護されたアプリケーションに初めてアクセスしようとすると、TomcatはこのRealmのauthenticate()メソッドを呼び出します。したがって、データベースに直接加えた変更はすぐに反映されます。 ユーザーが認証されると、ユーザーはログインの間、つまりセッションがタイムアウトするか無効になるか、ユーザーがブラウザを閉じるまで、Tomcat内にキャッシュされます。キャッシュされたユーザーは保存されず、セッションのシリアル化を通じて復元されます。 – poojagupta