0

我有一个war文件,其中一个类从Java调用MySQL DB,因此在源代码中具有纯文本形式的MySQL登录信息。显然,出于安全原因,我不希望这对外界可见。因此,问题是部署在 Tomcat 上的 war 文件中的源代码是否对外界可见?

4

3 回答 3

4

这不是问题,但不灵活。使用 JNDI 更有用。在 context.xml 中放置如下内容:

<Resource
        name="jndi_name_for_datasource"
        auth="Container"
        type="javax.sql.DataSource"
        factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
        testOnReturn="true"
        validationQuery="select 1 from dual"
        timeBetweenEvictionRunsMillis="30000"
        minIdle="1"
        initialSize="1"
        minEvictableIdleTimeMillis="30000"
        username="solaris"
        password="super"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@localhost:1521:slife"
    />

并使用查找 JNDI 名称

于 2013-09-10T14:19:34.650 回答
2

不,它不会是可见的。前提是无法下载war-一旦下载了war-任何人都可以找到该类并对其进行反编译以查看密码。

更好的选择是配置 DataSoure - 这不在您的战争范围内。

于 2013-09-10T14:14:46.783 回答
1

但我认为这仍然是一个安全问题,如果其他人可以访问 tomcat 服务器。例如其他员工或管理员。

我建议您在代码中添加简单的加密/解密技术,以防止其他人找出密码。

于 2013-09-10T14:22:40.867 回答