您好我已经设法使用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异常...
我做错了什么?
答案 0 :(得分:1)
有点晚了,但我想我可以帮你解答这个问题。
从事物的声音来看,您的代码实际上是正确的,但是,正如您所发现的那样,您的表格未正确设置。
配置RDBMS身份验证时,假设您的数据库中有三个表,它们是:
我希望你们大部分都在那里,但缺少“用户”和“组”表的描述栏导致了你的问题。
您可以从Oracle的在线文档中查看此链接以获取更多信息:
https://docs.oracle.com/cd/E21764_01/web.1111/e13707/atn.htm#SECMG195
答案 1 :(得分:0)
好的,我的代码现在运行正常,但我不知道为什么。我唯一改变的是我在表格中添加了一些描述列,并相应地在提供者描述中修复了我的查询。这不应该实际影响登录,只是从weblogic控制台创建的用户没有工作。也许weblogic只需要重启一些IDK。