如何在weblogic 12c中使用散列密码实现容器管理的身份验证?

时间:2016-06-02 21:42:02

标签: authentication weblogic weblogic12c password-hash

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

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

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

通过提供密码“weblogic1”,该值存储在db:{SHA-1} r49g3WeQasgoe6ODQ + 5fa4Ic5tk =

在我的SQLAuthenticator提供程序特定设置中,我将“Plaintext Passwords Enabled”设置为false,“Password Style Retained”设置为true,Password Algorithm:设置为SHA-1。

当我跑步时

request.login(email, password);

它会抛出Authentication Failed异常...

我做错了什么?

2 个答案:

答案 0 :(得分:1)

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

从事物的声音来看,您的代码实际上是正确的,但是,正如您所发现的那样,您的表格未正确设置。

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

  • 用户(用户名,密码,说明)
  • groupmembers(组名,组成员)
  • 组(组名,组说明)

我希望你们大部分都在那里,但缺少“用户”和“组”表的描述栏导致了你的问题。

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

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

答案 1 :(得分:0)

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