我想知道如何通过数据库在 Java 中启用基于表单的身份验证。连接到数据库后,如何验证我通过html页面输入的用户名和密码是否正确?
我是否必须将操作 servlet 从 j_security_check 更改为另一个我自己定义的 servlet,它将连接到数据库并自行进行所有验证?或者我必须将身份验证信息发送到 j_security_check,它会自动连接到数据库,验证用户名和密码。
我成功地通过 context.xml 文件连接到数据库,该文件位于我自己的 Web 应用程序的 META-INF 目录中,但我无法理解我还需要做什么来启用基于表单的身份验证。
我使用 Tomcat 6 作为 Web 服务器。
最佳答案
我个人在 webapp 的 context.xml 中使用 DataSourceRealm:
<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"/>
并且我在tomcat的server.xml中定义了datasource(允许不同环境使用同一个war):
<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"/>
表rolemap实际上是一个 View ,因为数据库模型与tomcat期望的不同。
关于java - java中基于表单的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2475626/