java中基于表单的身份验证

时间:2010-03-19 07:30:38

标签: java authentication tomcat forms-authentication

我想知道如何在java中通过数据库启用基于表单的身份验证。连接数据库后,如何验证我通过html页面输入的用户名和密码是否正确?

我是否必须将操作servlet从 j_security_check 更改为另一个我自己定义的servlet,这些servlet将连接到数据库并自行完成所有验证?或者我将身份验证信息发送到 j_security_check ,它将自动连接到数据库,验证用户名和密码。

我通过context.xml文件成功连接到数据库,该文件位于我自己的Web应用程序的META-INF目录中,但是我无法理解我还要做什么来启用基于表单的身份验证。

我正在使用Tomcat 6作为网络服务器。

1 个答案:

答案 0 :(得分:2)

我个人在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中定义了数据源(允许在不同的环境中使用相同的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实际上是一个视图,因为数据库模型与tomcat期望的模型不同。