Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package pt.estgp.estgweb.services.ftpservices;
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.email.ReadEmailService;
import pt.estgp.estgweb.services.email.IPopEmail;
import pt.estgp.estgweb.services.email.IAddress;
import pt.estgp.estgweb.services.email.impl.DefaultPopEmail;
import pt.estgp.estgweb.services.email.impl.DefaultAddress;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.estgp.estgweb.web.FtpServer;
import org.apache.log4j.Logger;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.fileupload.FileItem;
import java.util.List;
import java.util.Properties;
import java.util.Date;
import java.util.ArrayList;
import java.io.*;
import jomm.utils.DesUtils;
import jomm.utils.StringsUtils;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
/**
* @author Jorge Machado
* @date 20/Mar/2008
* @time 18:31:00
* @see pt.estgp.estgweb.services.email
*/
public class FtpService
implements IService
{
private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger =
1.5.0/docs/api/java/util/logging/Logger.html">Logger.
getLogger(FtpService.
class);
private static final 1.5.0/docs/api/java/lang/String.html">String FTP_PASSWORD =
"pt.estgp.estgweb.services.ftpservices.FtpService.FTP_PASSWORD";
public 1.5.0/docs/api/java/lang/String.html">String run
(FtpRequestForm ftpRequestForm, UserSession userSession
) throws 1.5.0/docs/api/java/io/IOException.html">IOException
{
if(ftpRequestForm.
isSavePassword() && ftpRequestForm.
getPassword() !=
null && ftpRequestForm.
getPassword().
trim().
length() > 0
)
{
((UserSessionImpl
)userSession
).
put(FTP_PASSWORD,DesUtils.
getInstance().
encrypt(ftpRequestForm.
getPassword()));
}
1.5.0/docs/api/java/lang/String.html">String passwordCode =
(1.5.0/docs/api/java/lang/String.html">String) ((UserSessionImpl
)userSession
).
get(FTP_PASSWORD
);
1.5.0/docs/api/java/lang/String.html">String password
;
if(passwordCode
!=
null)
{
logger.
info("using saved password");
password = DesUtils.
getInstance().
decrypt(passwordCode
);
}
else
{
logger.
info("trying pop 3 password");
password = DesUtils.
getInstance().
decrypt(userSession.
getUser().
getPop3password());
}
1.5.0/docs/api/java/lang/String.html">String username = ftpRequestForm.
getUsername();
if(username ==
null || username.
trim().
length() == 0
)
username = userSession.
getUsername();
FtpServer server = FtpServer.
getNewServer(ftpRequestForm.
getServerUrl(),username,password
);
FTPClient client = server.
getClient();
1.5.0/docs/api/java/lang/String.html">String result =
"ftp.operation.success";
client.
setFileType(FTP.
BINARY_FILE_TYPE);
client.
changeWorkingDirectory(ftpRequestForm.
getStartPath());
if(ftpRequestForm.
getFilesToImport() !=
null)
{
for(FileItem item: ftpRequestForm.
getFilesToImport())
{
if(!client.
storeFile(item.
getName(),item.
getInputStream()))
result =
"errors.ftp.no.permission";
}
}
if(ftpRequestForm.
getNewFolderName() !=
null && ftpRequestForm.
getNewFolderName().
trim().
length() > 0
)
{
if(!client.
makeDirectory(ftpRequestForm.
getNewFolderName()))
result =
"errors.ftp.no.permission";
}
if(ftpRequestForm.
getFileToDelete() !=
null && ftpRequestForm.
getFileToDelete().
trim().
length() > 0
)
{
if(!client.
deleteFile(ftpRequestForm.
getFileToDelete()))
result =
"errors.ftp.no.permission";
}
if(ftpRequestForm.
getFolderToDelete() !=
null && ftpRequestForm.
getFolderToDelete().
trim().
length() > 0
)
{
int code = client.
rmd(ftpRequestForm.
getFolderToDelete());
if(code
!= 250
)
{
if(code == 550
)
return "error.ftp.dir.not.empty";
else if(code == 530
)
return "errors.ftp.no.permission";
}
}
client.
quit();
client.
disconnect();
return result
;
}
}