【问题标题】:How to implement container managed authentication with hashed password in weblogic 12c?如何在 weblogic 12c 中使用散列密码实现容器管理的身份验证?
【发布时间】:2016-06-02 21:42:02
【问题描述】:

您好,我已经设法在 weblogic 12c 中使用 SQLAuthenticator 实现了容器管理的身份验证。当密码设置在提供程序特定的 sqlauthenticator 设置中设置为 PLAINTEXT 并且数据库值未加密时,我使用我在数据库中创建的用户成功登录。

如果我使用以下代码将用户密码存储在数据库中,但我无法登录:

String encPass = "{SHA-1}" + new sun.misc.BASE64Encoder()
.encode(java.security.MessageDigest.getInstance("SHA1")
.digest(newUser.getPassword().getBytes()));

通过提供密码“weblogic1”,此值存储在数据库中:{SHA-1}r49g3WeQasgoe6ODQ+5fa4Ic5tk=

在我的 SQLAuthenticator 提供程序特定设置中,我将“启用纯文本密码”设置为 false,将“保留密码样式”设置为 true,密码算法:设置为 SHA-1。

当我跑步时

request.login(email, password);

它会抛出 Authentication Failed 异常...

我做错了什么?

【问题讨论】:

    标签: authentication weblogic weblogic12c password-hash


    【解决方案1】:

    有点晚了,但我想我可以为你回答这个问题。

    从表面上看,您的代码实际上是正确的,但是,正如您所发现的,您的表没有正确设置。

    在配置 RDBMS 身份验证时,假设您的数据库中有三个表,它们是:

    • 用户(用户名、密码、描述)
    • groupmembers(组名、组成员)
    • 群组(群组名称、群组描述)

    我希望您大部分时间都在那里,但是缺少“用户”和“组”表的描述列会导致您的问题。

    您可以从 Oracle 的在线文档中查看此链接以获取更多信息:

    https://docs.oracle.com/cd/E21764_01/web.1111/e13707/atn.htm#SECMG195

    【讨论】:

      【解决方案2】:

      好的,我的代码现在可以正常运行,但我不知道为什么。我唯一改变的是我在表中添加了一些描述列,并相应地在提供程序描述中修复了我的查询。这实际上不应该影响登录,只是从 weblogic 控制台创建的用户不起作用。也许 weblogic 只需要重启几次 IDK。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-09
        • 1970-01-01
        • 2011-09-12
        • 1970-01-01
        • 2014-12-29
        • 2021-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多