JDBC领域表单身份验证如何

nic*_*las 1 java forms jdbc realm

可能重复:
JDBC领域登录页面

大家好,我想创建一个应用程序登录功能,它与jdbc域和自定义登录表(基于表单的身份验证登录约束方法)捆绑在一起.

请提供链接或任何帮助非常感谢.

请帮忙.

谢谢.

Kou*_*avi 7

你使用什么样的容器?jBoss?Tomcat?Derby?
您还需要使用持久存储 - >是的,需要DBMS.它将是哪一个?MySQL?Sysbase?Oracle PL/SQL?MS SQL?

这里有针对初学者的文档:
http ://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JDBCRealm

一般来说,你需要有一个DB后端,一个JDBC-ODBC驱动程序(jar)和一个容器为您进行身份验证.

但是,如果您遇到困难,我会为您提供一些指导和见解,以帮助您.

假设您正在使用Tomcat 7.0+和MySQL 5.5,请按照此处的步骤进行操作:一开始
看起来很乏味但实际上非常简单.
首先安装MySQL或您想要的其他DBMS.这里最重要的事情之一是命名并注册一个MySQL服务,安装程序会自动为您执行此操作*.尝试连接到数据库**.
成功执行此操作后,请更改默认DBMS特权用户的用户名(root)和密码("").
创建项目架构.
在名为"users"和"rights"的模式中创建2个表.
第一个表(用户)必须有两列:用户名和密码.
第二个(权限)还必须有两列:用户名和角色.
对于初学者,将两个表留空.

现在,您必须编辑位于tomcat的Catalina(aka home)conf(配置)目录中的tomcat-users.xml和server.xml.
tomcat-users.xml:此文件包含tomcat可识别的角色.因此,您需要添加至少一个此类角色,例如'client','customer','unauthenticated'等
.此外,此文件中至少有一个tomcat用户名和密码实例,当您手动启动tomcat时使用或作为服务或通过IDE.该实例需要插入数据库中,因此您需要手动添加它(SQL代码),以便容器对自身进行身份验证(否则您将从容器本身获得持久登录失败).
server.xml:现在,假设您的JDBC-ODBC驱动程序已添加到项目的类路径中,请注释掉UserDatabaseRealm

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

并在LockoutRealm(已存在)中添加类似的内容(

<Realm className="org.apache.catalina.realm.JDBCRealm" connectionURL="jdbc:mysql://localhost:3306/SCHEMA_NAME_IN_DB?user=DB_USER;password=DB_PASS" debug="99" driverName="com.mysql.jdbc.Driver" userTable="users" userNameCol="username" userCredCol="password" userRoleTable="rights" roleNameCol="role"/>

如果您不想拥有LockOutRealm,请注意不要 - >注释然后粘贴上面的Realm)

SCHEMA_NAME_IN_DB,DB_USER和DB_PASS是您在创建模式并更改DBMS特权用户的用户名和密码时设置的值.现在,您需要做的就是在数据库中添加正在运行的tomcat的实例用户名和密码(role:'manager-script')以及MySQL特权用户(角色:custom即'client').
添加一个或两个测试用户以进行展示,并将它们与您在tomcat-users.xml中手动添加的角色相关联.

最后,您需要编辑项目的web.xml文件.您需要提供以下内容:登录配置,安全角色和安全约束.
登录配置:提供登录页面和登录错误页面.
安全角色:在此处添加您手动添加到users-tomcat.xml文件的安全角色,以及用户必须拥有的安全角色才能通过登录访问任何页面. 安全约束:指定登录用户需要经过身份验证访问的页面.

示例(weeeh!)

<security-constraint>

<display-name>URLsConstraintMechanism</display-name>
<web-resource-collection>
<web-resource-name>clientURL</web-resource-name>
<description>Required access to specified URL with client permissions </description>
<url-pattern>/securedURL/index.html</url-pattern>
<http-method>GET</http-method>
<http-method>PUT</http-method>
<http-method>POST</http-method>
<http-method>DELETE</http-method>
</web-resource-collection>
...(此处有更多web-resource-collections)

<auth-constraint>
<description>Required privileges to access securely constraint URLs.</description>
<role-name>client</role-name>
</auth-constraint>

</security constraint>

<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/index.html</form-login-page>
<form-error-page>/index_denied.html</form-error-page>
</form-login-config>
</login-config>

<security-role>
<description>Required privileges to access securely constraint URLs.</description>
<role-name>client</role-name>
</security-role>

如果您使用IDE(特别是NetBeans for web.xml),这将更容易.

玩得开心!!!祝你好运:D :):D

关于*和**:
MySQL 5.5的安装程序中有2个严重的错误.
如果您需要帮助,请检查此URL:
https

://serverfault.com/questions/214435/error-1067-the-process-terminated-unexpectedly-when-trying-to-install-mysql-on PS:明天我会回来添加一些提示.现在,我要睡觉了!的xD