java,javascript签名的小程序(文件选择,ftp上传)安全性/套接字异常
java, javascript signed applet (file choosing, ftp upload) security/socket exception
我有一个java小程序,它使用了一个包含3个函数(不包括测试函数)的类:
- 一个用于运行文件选择器并将选定的文件(类型为FileContents)添加到数组中
- 第二步是在必要时从数组中删除一些文件
-
第三个是将文件上传到ftp服务器。
所有这些都是从
Javascript
代码调用的。前两个函数运行良好。上传功能不工作,它抛出:
java.security.AccessControlException:访问被拒绝("java.net.SocketPermission"(dest.ftp服务器)"resolve")
小程序是自签名的。我正在使用[Yii Framework][1]
重要代码:-上传器上传功能:
public void upload( String ftpServer, String username, String password, String filePath )
throws MalformedURLException, IOException
{
if ( ftpServer != null && filePath != null && this.filesArray.length > 1 ) {
StringBuffer sb = new StringBuffer( "ftp://" );
//check for authentication, if username and password not provided assume annonymous access
if ( username != null && password != null ) {
sb.append( username );
sb.append( ':' );
sb.append( password );
sb.append( '@' );
}
sb.append( ftpServer );
sb.append( ":21" );
sb.append( '/' );
if ( !filePath.equals( "" ) ) {
sb.append( filePath );
sb.append( '/' );
}
StringBuffer sb2 = new StringBuffer( sb.toString() );
//below: i < this.filesArray.length - 1 becouse last field is always empty
for ( int i = 0; i < this.filesArray.length - 1; i++ ){
sb.append( this.filesArray[ i ].getName() );
sb.append( ";type=i" );
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
URL url = new URL( sb.toString() );
URLConnection urlConn = url.openConnection();
bos = new BufferedOutputStream( urlConn.getOutputStream() );
bis = new BufferedInputStream( this.filesArray[ i ].getInputStream() );
int j;
//read byte by byte until end of stream
while ( ( j = bis.read() ) != -1 ) {
bos.write( j );
}
}
finally {
if ( bis != null ) {
try {
bis.close();
}
catch( IOException ioe ) {
ioe.printStackTrace();
}
}
if ( bos != null ) {
try {
bos.close();
}
catch ( IOException ioe ) {
ioe.printStackTrace();
}
}
}
sb = sb2;
}
}
else {
System.out.println( "Ftp address incorrect or input file not available." );
}
}
部署代码:
<script>
var attributes = { id:'uploader1Applet',
code: 'filesUpload.uploaderApplet',
archive:'<?php echo Yii::app()->getBaseUrl(true); ?>/java/uploaderApplet.jar', width:1, height:1} ;
var parameters = {jnlp_href: '<?php echo Yii::app()->getBaseUrl(true);?>/java/upload-applet.jnlp'};
deployJava.runApplet(attributes, parameters, '1.6') ;
- javascript声明+初始化(仅初始化作业是将新的FileContents数组分配给Uploader属性;与上面的视图相同,不同的脚本):
var uploader = document.getElementById( 'uploader1Applet' ).getUploader(); uploader.initialize();
- 上传方法调用(与Uploader声明+初始化相同的脚本):
uploader.upload(connAddress,connUsername,'<?php echoYii::app()->session['ftpPassword'];?>',connRootFolder!=无效的connRootFolder:");
有什么办法解决我的问题吗?
AccessController.doPrivileged(..)
调用中才能被信任。
相关文章:
- 如何使用WCF服务和javascript表单post上传.doc文件
- nodejs-expressjs上传图像并显示它们
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- PHP AJAX图片上传示例不上传
- 正在将base64 jpeg从input-type=file上传到服务器
- jQuery blueimp文件上传:将N-1个文件上传到IE中的服务器
- 如何使用post方法从方法上传文件
- 将图像上传ajax与表单提交ajax相结合
- AJAX不会在文件上传后重定向到网页-POST方法
- java,javascript签名的小程序(文件选择,ftp上传)安全性/套接字异常
- 使用ajax获取通过FTP上传的文件的文件大小——试图防止ajax中断自身
- Gulp乙烯基ftp更新和不同大小的文件不上传
- PHP FTP上传BLOB TEMP图像
- 上传到FTP之前预处理文件
- 使用 InDesign 脚本上传到 FTP 文件夹
- 为什么我的脚本只将最后一个图像上传到我的 FTP 和数据库
- HTML/PHP/JS 选择多个文件并通过FTP上传
- “街头艺人”;文件“;到gm到ftp上传
- 如何通过FTP客户端上传单独的HTML文件到wordpress站点
- Apache Commons FTP Applet上传html按钮