当前位置: 首页 > 知识库问答 >
问题:

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

乜璞瑜
2023-03-14

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

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

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

通过提供密码“weblogic1”,此值存储在DB中:{SHA-1}r49g3weqasgoe6odq+5fa4ic5tk=

request.login(email, password);

将引发身份验证失败异常...

我做错了什么?

共有1个答案

鲜于星波
2023-03-14

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

从听起来,您的代码实际上是正确的,但是,正如您发现的,您的表没有正确设置。

配置RDBMS身份验证时,假定DB中有三个表,它们是:

    null
 类似资料:
  • 好吧——我在这里转了一个星期,试图自己解决这个问题,但一无所获。Shiro留档/教程似乎在各种版本和过时的设计范例之间过于分散,以至于我很难弄清楚如何自己实现这一点。即使是官方留档也会留下很多空白,让新手茫然和困惑。我一直在关注这个(现在有些过时)关于在JSF应用程序中设置ApacheShiro身份验证的BalusC教程(链接:http://balusc.blogspot.sg/2013/01/a

  • 了解如何配置WAS或OpenJPA,以便通过容器管理的实体管理器使用容器管理的身份验证。 试图通过在JNDI中注册为“JDBC/DB2”(指Oracle)的JDBC数据源访问Oracle数据库,该数据源在persistence.xml中定义。 persistence.xml 但是,当访问持久性单元的容器管理实体管理器时,会抛出ORA-01017无效的usrname/password。如果在pers

  • 我在调试身份验证问题时遇到了这个代码片段: 我在调试和摆弄用户凭证时注意到,如果第一个身份验证提供者(即< code > userdailsservice )无法对我的用户进行身份验证,那么就会远程调用我的LDAP服务器来尝试对我的用户进行身份验证。但是,如果第一个身份验证提供者成功地对我的用户进行了身份验证,则不会调用第二个身份验证提供者。 我的问题是,列出这些身份验证提供者的工作方式是否使得如

  • 假设我试图从使用基本身份验证/基本证书的RESTful api中提取,那么在我的程序中存储用户名和密码的最佳方式是什么?现在它只是以明文形式存在。 有没有更安全的方法? 谢啦

  • 问题内容: 我需要对密码进行哈希处理以存储在数据库中。如何用Java做到这一点? 我希望使用纯文本密码,添加随机盐,然后将盐和哈希密码存储在数据库中。 然后,当用户想要登录时,我可以使用其提交的密码,从其帐户信息中添加随机盐,对其进行哈希处理,然后查看其是否等同于其帐户信息所存储的哈希密码。 问题答案: 实际上,你可以使用Java运行时内置的工具来执行此操作。Java 6中的SunJCE支持PBK

  • 问题内容: 假设我试图从使用基本身份验证/基本证书的RESTful API中提取信息,那么在该程序中存储该用户名和密码的最佳方法是什么?现在,它只是以纯文本格式坐在那里。 有什么方法可以做到更注重安全性吗? 问题答案: 在@ Damien.Bell的请求下,以下示例涵盖了第一步和第二步: 一个解决每个保护步骤的完整示例将远远超出我认为对该问题的合理范围,因为它是关于“步骤是什么”而不是“如何应用它