Elytron 中的散列密码简单摘要映射器

问题描述

我将 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 (将#修改为@)