Проверка подлинности на основе форм в Java - PullRequest
2 голосов
/ 19 марта 2010

Я хочу знать, как включить аутентификацию на основе форм в Java через базу данных. После подключения к базе данных, как я могу проверить правильность имени пользователя и пароля, которые я ввожу через html-страницу?

Нужно ли менять сервлеты действий с j_security_check на другие мои собственные сервлеты, которые будут подключаться к базе данных и выполнять всю ее проверку самостоятельно? Или я должен отправить аутентификационную информацию на j_security_check , которая автоматически подключится к базе данных, проверит имя пользователя и пароль.

Мне удалось подключиться к базе данных через файл context.xml, который находится в каталоге META-INF моего собственного веб-приложения, но я не могу понять, что еще мне нужно сделать, чтобы включить аутентификацию на основе форм.

Я использую Tomcat 6 в качестве веб-сервера.

1 Ответ

2 голосов
/ 19 марта 2010

Лично я использую DataSourceRealm в context.xml веб-приложения:

  <Realm className="org.apache.catalina.realm.DataSourceRealm"
        dataSourceName="jdbc/lagalerie" debug="99" localDataSource="true"
        roleNameCol="role" userCredCol="password" userNameCol="username"
        userRoleTable="rolemap" userTable="users" digest="md5"
        digestEncoding="UTF-8"/>

И я определяю источник данных в файле server.xml tomcat (чтобы разрешить использование одной и той же войны в разных средах):

<Resource auth="Container" type="javax.sql.DataSource" name="jdbc/lagalerie"
          driverClassName="org.postgresql.Driver"
          url="jdbc:postgresql://localhost/lagalerie?charSet=LATIN1"
          maxActive="100" maxIdle="30" maxWait="10000"
          username="casashop" password="casashop"/>

таблица ролей таблицы на самом деле является представлением, поскольку модель базы данных отличается от модели, которую ожидает tomcat.

...