【问题标题】:Encrypting clear text database password in context.xml for Liferay为 Liferay 在 context.xml 中加密明文数据库密码
【发布时间】:2015-09-21 01:16:03
【问题描述】:

如何加密 context.xml 文件中的明文密码?

我已经尝试使用摘要,如下所述:https://serverfault.com/questions/295628/how-do-i-use-non-plaintext-passwords-for-tomcat-users,但我的 portlet 最终会出现“BeanLocator is null for servlet context”错误。

也尝试过创建这个: How to avoid storing passwords in the clear for tomcat's server.xml Resource definition of a DataSource? 但它无法加载我的类文件(NoClassDefFound 异常)

或者上述方法是否有效,我只是在实现它时遇到了一些问题?

【问题讨论】:

    标签: tomcat encryption liferay-6


    【解决方案1】:

    您提供的第一个链接不适用于该问题,因为它适用于 tomcat 身份验证的用户 - 而不是数据源。 Liferay 使用完全不同的方式来识别用户并正确地散列密码。

    second link 是您要查找的内容 - 为了使其正常工作,您必须将 datasourcefactory 打包到 jar 文件中并将其添加到 tomcat 的全局类路径中,例如在 tomcat/lib 中,或者,对于标准 Liferay 捆绑包,tomcat/lib/ext。如果您将 jar 打包在 Web 应用程序中,它将无法工作,因为它需要在整个服务器端可用,而不仅仅是在特定的 Web 应用程序中。

    请注意对该答案的评论:这与其说是加密,不如说是加扰,因为任何攻击者都可以轻松撤消相同的过程。是的,它会提高标准,但它并没有真正增加强大的安全性。服务器迟早需要读取密码,除了在服务器启动时强制手动输入密码外,几乎没有办法确保此过程的安全。当然,这也不是很受欢迎。

    另一种选择是使用支持开箱即用的非明文密码保存的应用服务器。此处也有同样的限制:它只能对这些密码进行加扰,而不能以安全的方式进行加密。

    【讨论】:

    • 我还在尝试做datasourcefactory,但是当我把jar放在tomcat/lib中时,liferay会做一些数据库验证,毕竟,我得到一个数据库损坏的错误。我在虚拟机上做,所以我可以恢复。
    • 这对你有用吗?我也遇到同样的错误.. 创建了我的数据源类并将 jar 部署到 tomcat/lib 但是在启动时它因 javax.naming.NamingException 失败:无法加载资源工厂类 [根异常是 java.lang.ClassNotFoundException:“my_class_name_with_package”
    猜你喜欢
    • 2013-09-06
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    相关资源
    最近更新 更多