Java Tomcat战争代码可见吗?

Java Tomcat战争代码可见吗?,java,mysql,security,tomcat,Java,Mysql,Security,Tomcat,我有一个war文件,其中一个类从Java调用一个MySQL数据库,因此在源代码中有明文形式的MySQL登录信息。显然,出于安全考虑,我不想让外界看到这一点。因此,问题是部署在Tomcat上的war文件中的源代码是否对外部世界可见?不,它将不可见。如果没有办法下载war-一旦下载了war-任何人都可以找到该类并对其进行反编译以查看密码 更好的选择是配置数据源,它不在您的战争范围内。这不是问题,但不灵活。使用JNDI更有用。在context.xml中,放置如下内容: <Resource

我有一个war文件,其中一个类从Java调用一个MySQL数据库,因此在源代码中有明文形式的MySQL登录信息。显然,出于安全考虑,我不想让外界看到这一点。因此,问题是部署在Tomcat上的war文件中的源代码是否对外部世界可见?

不,它将不可见。如果没有办法下载war-一旦下载了war-任何人都可以找到该类并对其进行反编译以查看密码


更好的选择是配置数据源,它不在您的战争范围内。

这不是问题,但不灵活。使用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名称

,但我认为,如果其他人有权访问tomcat服务器,这仍然是一个安全问题。e、 g.其他员工或管理人员


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

不,war文件对外不可见。请在应用程序外部使用Tomcat中配置的数据源。管理控制台或查找Tomcat参考。虽然WEB-INF是不可见的。为什么在您的war中有源代码?