【问题标题】:JDBC Realm: GlassFish v2.1 = OK; GlassFish v3 = fail with invaliduserreasonJDBC 领域:GlassFish v2.1 = OK; GlassFish v3 = 因用户原因无效而失败
【发布时间】:2010-04-05 10:55:26
【问题描述】:

在我的 J2EE 5 应用程序中,我有一个基于 JDBC 领域的安全性和 Form 方法。加密方法默认为 MD5。 该数据库是本地安装的 PostgreSQL 8.4(或通过 lan 提供的 8.3)。

我的应用程序过去可以在装有 PostgreSQL 8.3 的 GlassFish v2.1 服务器上正常运行,但现在我需要将它部署在 GlassFish v3 上。 我绝对确定我在 GFv3 上完成了所有相同的配置,例如创建连接池(ping 没有问题)、JDBC 资源和 JDBC 领域。

但在 GFv3 上,当数据库架构刚刚从工作数据库脚本创建时,我得到了登录异常“invaliduserreason”。 我检查了数据并输入了数千次登录名/密码,似乎数据没问题。

那么我在哪里可以找到安全性不起作用的原因?请指教。

NetBeans 6.8 谢谢。

【问题讨论】:

    标签: java postgresql jdbc jakarta-ee glassfish


    【解决方案1】:

    我在这里遇到了同样的问题。 我解决了将安全日志设置为最好的问题。 我看到 jaas 正在以小写形式查询数据库,即使我使用骆驼符号来命名 postgresql 表中的字段。

    我找到的唯一解决方案是在 Postgresql 服务器中也将我的所有表和字段命名为小写。

    【讨论】:

      【解决方案2】:

      您可能希望增加安全系统的日志记录。转到 Logger Settings -> Log Warnings 并将记录器名称设置为“javax.enterprise.system.core.security”以进行跟踪。重试并检查日志。

      【讨论】:

        【解决方案3】:

        尝试将数据库表名更改为大写。我遇到了与您完全相同的问题,将表名更改为大写为我解决了问题。

        【讨论】:

          【解决方案4】:

          将摘要算法设置为“无”对我有用。我将 Glassfish 3.1 与 Derby 一起使用。在领域配置中,我有小写的表名,用户 ID 和组 ID 是同一个表中的列,所以这些东西不会在 Derby 上引起问题。

          【讨论】:

            【解决方案5】:

            这是一篇关于 glassfish 中的 jdbc 安全领域以及如何配置它的好文章:http://jugojava.blogspot.com/2011/02/jdbc-security-realm-with-glassfish-and.html

            【讨论】:

              【解决方案6】:

              尝试将数据库名称添加到连接池中的属性 Url.. 此处隐藏的 sqlexception 指出未指定数据库名称.. 为我工作

              【讨论】:

                猜你喜欢
                • 2013-10-22
                • 1970-01-01
                • 2013-01-04
                • 2012-03-10
                • 1970-01-01
                • 2017-04-02
                • 2012-10-02
                • 2016-07-29
                • 1970-01-01
                相关资源
                最近更新 更多