我已经创建了一个成功使用外部jar文件的GWT项目(请参阅GWT - Using external jars/Java Projects by Lars Vogel和Adding external jar in GWT)。GWT中外部jar文件的安全
当我使用这样的库文件时,编译项目并将其上载到AppEngine时会发生什么? jar文件是按照原样上传的,还是首先被编译成别的东西?如果是前者,是否有没有我的控制权下载的安全风险?
我已经创建了一个成功使用外部jar文件的GWT项目(请参阅GWT - Using external jars/Java Projects by Lars Vogel和Adding external jar in GWT)。GWT中外部jar文件的安全
当我使用这样的库文件时,编译项目并将其上载到AppEngine时会发生什么? jar文件是按照原样上传的,还是首先被编译成别的东西?如果是前者,是否有没有我的控制权下载的安全风险?
让我们放下“google-app-engine”部分,这里没关系。您在GWT中使用库,在客户端。 App Engine是服务器端,没有直接连接到GWT(但由于体积限制,使用像GWT这样的客户端执行是非常有用的)。
您在GWT中使用的所有内容都将被编译为JavaScript,并传输到客户端并在此处执行。很明显,你无法控制结果以及客户用它做什么。
但它会接近不可读。另外,客户端本身并没有获得JAR,他没有得到JAR内的所有东西。
因此,真正重要的是,如果库的许可证允许,并且库代码中只有服务器端使用的秘密。
其实他的的回答不太正确。 “谷歌应用程序引擎” - 这里很重要。从技术上讲,GWT编译和混淆了它需要的所有Java代码。它将所有不需要的东西去掉。因此,从GWT生成的JavaScript中,确实很难重建或甚至认识图书馆。但事实证明,如果您使用Eclipse插件来部署应用程序,appcfg会将各种随机内容上传到AppEngine服务器,有时包括项目的整个Java源代码(包括客户端代码)。
要查看部署时上传的内容,请在上载运行时检查系统的temp
目录。您将在那里找到一个AppEngine staging目录,其中包含要发送的所有内容。
为解决此方面的建议,你可以参考的答案,我问前面一个问题:Removing unwanted uploads from AppEngine deployment
我没有检查什么是所有不需要上传的文件是否在实际上目录结束可以从互联网直接访问。