【问题标题】:JDBC Realm Form Authentication How To [duplicate]JDBC领域表单身份验证如何[重复]
【发布时间】:2011-05-28 02:39:53
【问题描述】:

可能重复:
JDBC Realm Login Page

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

请提供链接或任何帮助将不胜感激。

请帮忙。

谢谢。

【问题讨论】:

  • 你没有指定哪个服务器,你没有展示你尝试过的东西并且你昨天已经发布了一个你没有跟进的问题,它处理几乎相同的事情。
  • 我试过了,现在可以了。
  • 我已经成功创建并测试了应用程序,但是当登录成功时它没有重定向到另一个页面 – peterwkc 5 分钟前 与手动 jdbc 领域相比,使用 glassfish 的自动登录机制有什么优势?
  • 请努力提出体面的问题。

标签: java forms jdbc realm


【解决方案1】:

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

初学者可以在此处获得文档:
http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JDBCRealm

通常,您需要有一个数据库后端、一个 JDBC-ODBC 驱动程序 (jar) 和一个容器来为您进行身份验证。

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

假设您使用的是 Tomcat 7.0+ 和 MySQL 5.5,请按照以下步骤操作:
一开始可能看起来很乏味,但实际上很简单。
首先安装 MySQL 或您想要的其他 DBMS。这里最关键的事情之一是命名和注册一个 MySQL 服务,安装程序会自动为你做这件事*。尝试连接到数据库**。
当您成功更改默认 DBMS 特权用户的用户名(root)和密码(“”)。
创建项目架构。
在名为“用户”和“权限”的架构中创建 2 个表。
第一个表(用户)必须有两列:用户名和密码。
第二个(权限)也必须有两列:用户名和角色。
对于初学者,请将两个表都留空。

现在您必须编辑位于 tomcat 的 Catalina(又名 home)conf(iguration) 目录中的 tomcat-users.xml 和 server.xml。
tomcat-users.xml:此文件包含tomcat 可识别的角色。因此,您将需要添加至少一个此类角色,例如“客户”、“客户”、“未经身份验证”等。
此外,此文件中至少有一个 tomcat 用户名和密码实例,当您手动或作为服务或通过 IDE 启动 tomcat 时使用。该实例 需要 插入到数据库中,因此您需要手动添加它(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 -> 也将其注释掉并粘贴上述领域)

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

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

示例(哇!)

&lt;security-constraint&gt;

&lt;display-name&gt;URLsConstraintMechanism&lt;/display-name&gt;
&lt;web-resource-collection&gt;
&lt;web-resource-name&gt;clientURL&lt;/web-resource-name&gt;
&lt;description&gt;Required access to specified URL with client permissions &lt;/description&gt;
&lt;url-pattern&gt;/securedURL/index.html&lt;/url-pattern&gt;
&lt;http-method&gt;GET&lt;/http-method&gt;
&lt;http-method&gt;PUT&lt;/http-method&gt;
&lt;http-method&gt;POST&lt;/http-method&gt;
&lt;http-method&gt;DELETE&lt;/http-method&gt;
&lt;/web-resource-collection&gt;
...(更多网络资源集合在这里)

&lt;auth-constraint&gt;
&lt;description&gt;Required privileges to access securely constraint URLs.&lt;/description&gt;
&lt;role-name&gt;client&lt;/role-name&gt;
&lt;/auth-constraint&gt;

&lt;/security constraint&gt;

&lt;login-config&gt;
&lt;auth-method&gt;FORM&lt;/auth-method&gt;
&lt;form-login-config&gt;
&lt;form-login-page&gt;/index.html&lt;/form-login-page&gt;
&lt;form-error-page&gt;/index_denied.html&lt;/form-error-page&gt;
&lt;/form-login-config&gt;
&lt;/login-config&gt;

@ 987654348@
&lt;description&gt;Required privileges to access securely constraint URLs.&lt;/description&gt;
&lt;role-name&gt;client&lt;/role-name&gt;
&lt;/security-role&gt;

如果您使用 IDE(尤其是用于 web.xml 的 NetBeans),这会容易得多。

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

关于*和**:
MySQL 5.5 的安装程序中有 2 个严重的错误。
如果您需要帮助,请查看此 URL:
https://serverfault.com/questions/214435/error-1067-the-process-terminated-unexpectedly-when-trying-to-install-mysql-on

P.S.:明天我会回来添加一些提示。现在,我要睡觉了! xD

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 2021-04-05
    • 1970-01-01
    • 2015-02-10
    • 2013-03-14
    • 1970-01-01
    • 2011-12-18
    相关资源
    最近更新 更多