tomcat的安全领域仅适用于第一个请求

时间:2017-11-21 21:36:55

标签: jsp servlets

我已经为servlet应用程序设置了数据源Realm安全性。但它仅适用于对资源的第一次请求。对于更多请求,我不需要任何凭据。 为什么会这样,我怎么能设置tomcat来询问我对特定资源的每个请求的凭据,而不仅仅是第一次。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

确保您的导入数据库应该是静态的,即不仅仅是一个会话。 您可以为以下步骤制作所有详细信息的脚本: 创建一个脚本调用createdb.sql并插入以下数据:

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并创建数据库和用户:

$ 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';