问题描述
我将 Wildfly22 与 java EJB 客户端一起使用,并成功地让客户端使用带有单独域和 jdbc-realm 的 elytron 登录。
但是我目前不得不在数据库中使用普通密码,这显然对生产不利。
我尝试使用 base64 和 md5 对它们进行哈希处理,并使用简单的摘要映射器:
private static Expression<MechanicalData TransformMechanicalData(MechanicalData sourceMechanicalData,Dictionary<string,MasterSection> masterSectionMappedLibrary)
{
return new MechanicalData()
{
Acoustic = sourceMechanicalData.Acoustic
.Where(a => a != null)
.Select(a => PropertyMapper<LibraryAcoustic,LibraryAcoustic>.Mapper(a,masterSectionMappedLibrary)).ToList(),}
}
但是现在我得到 ELY05051:回调处理程序不支持凭据获取。
我认为这里更大的问题是我对客户端演示代码之间的关系缺乏了解:
jdbc-realm name="jdbcRealm">
<principal-query sql="SELECT passwd FROM users where username = ?" data-source="TechDS">
<simple-digest-mapper password-index="1"/>
</principal-query>
<principal-query sql="SELECT role FROM userroles WHERE username = ?" data-source="TechDS">
<attribute-mapping>
<attribute to="roles" index="1"/>
</attribute-mapping>
</principal-query>
以及数据库中的密码存储格式。重申一下,当我使用 clear-password-mapper 时一切正常。
对此的任何帮助表示赞赏。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)