diff --git a/serveurFTP/.gitigniore b/serveurFTP/.gitigniore new file mode 100644 index 0000000000000000000000000000000000000000..21434565d9f187721c0b740555479670adebc458 --- /dev/null +++ b/serveurFTP/.gitigniore @@ -0,0 +1,109 @@ + +# Created by https://www.toptal.com/developers/gitignore/api/maven,java,eclipse +# Edit at https://www.toptal.com/developers/gitignore?templates=maven,java,eclipse + +### Eclipse ### +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ +.apt_generated_test/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +# Uncomment this line if you wish to ignore the project description file. +# Typically, this file would be tracked if it contains build/dependency configurations: +#.project + +### Eclipse Patch ### +# Spring Boot Tooling +.sts4-cache/ + +### Java ### +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +### Maven ### +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +# https://github.com/takari/maven-wrapper#usage-without-binary-jar +.mvn/wrapper/maven-wrapper.jar + +# End of https://www.toptal.com/developers/gitignore/api/maven,java,eclipse diff --git a/serveurFTP/.settings/org.eclipse.m2e.core.prefs b/serveurFTP/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000000000000000000000000000000000..f897a7f1cb2389f85fe6381425d29f0a9866fb65 --- /dev/null +++ b/serveurFTP/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/serveurFTP/bin/.project b/serveurFTP/bin/.project new file mode 100644 index 0000000000000000000000000000000000000000..51988d6c46aa0da6db514f3dfaa0a671ba57b356 --- /dev/null +++ b/serveurFTP/bin/.project @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>serveurFTP</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.m2e.core.maven2Builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> +</projectDescription> diff --git a/serveurFTP/bin/.settings/org.eclipse.core.resources.prefs b/serveurFTP/bin/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000000000000000000000000000000000..99f26c0203a7844de00dbfc56e6a35d8ed3c022c --- /dev/null +++ b/serveurFTP/bin/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/<project>=UTF-8 diff --git a/serveurFTP/bin/pom.xml b/serveurFTP/bin/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..714a36bc1bc427ecf60490b576c5259d9fc9f8fd --- /dev/null +++ b/serveurFTP/bin/pom.xml @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>sr.projet2</groupId> + <artifactId>serveurFTP</artifactId> + <version>1.0-SNAPSHOT</version> + + <name>serveurFTP</name> + <!-- FIXME change it to the project's website --> + <url>http://www.example.com</url> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.source>1.7</maven.compiler.source> + <maven.compiler.target>1.7</maven.compiler.target> + </properties> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> + <plugins> + <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> + <plugin> + <artifactId>maven-clean-plugin</artifactId> + <version>3.1.0</version> + </plugin> + <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> + <plugin> + <artifactId>maven-resources-plugin</artifactId> + <version>3.0.2</version> + </plugin> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.8.0</version> + </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.22.1</version> + </plugin> + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <version>3.0.2</version> + </plugin> + <plugin> + <artifactId>maven-install-plugin</artifactId> + <version>2.5.2</version> + </plugin> + <plugin> + <artifactId>maven-deploy-plugin</artifactId> + <version>2.8.2</version> + </plugin> + <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> + <plugin> + <artifactId>maven-site-plugin</artifactId> + <version>3.7.1</version> + </plugin> + <plugin> + <artifactId>maven-project-info-reports-plugin</artifactId> + <version>3.0.0</version> + </plugin> + </plugins> + </pluginManagement> + </build> +</project> diff --git a/serveurFTP/bin/src/main/java/sr/projet2/App.class b/serveurFTP/bin/src/main/java/sr/projet2/App.class new file mode 100644 index 0000000000000000000000000000000000000000..a6b2b3df52065e1a3f915bf7ca1d5dca340503a1 Binary files /dev/null and b/serveurFTP/bin/src/main/java/sr/projet2/App.class differ diff --git a/serveurFTP/bin/src/test/java/sr/projet2/AppTest.class b/serveurFTP/bin/src/test/java/sr/projet2/AppTest.class new file mode 100644 index 0000000000000000000000000000000000000000..42cbb8c5bb3c3397380a80012fa7379b76e7b71a Binary files /dev/null and b/serveurFTP/bin/src/test/java/sr/projet2/AppTest.class differ diff --git a/serveurFTP/pom.xml b/serveurFTP/pom.xml index 714a36bc1bc427ecf60490b576c5259d9fc9f8fd..43351d634735955dcd4ed5b66d6b6ad4d4223234 100644 --- a/serveurFTP/pom.xml +++ b/serveurFTP/pom.xml @@ -35,6 +35,16 @@ <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>3.0.0</version> + <configuration> + <reportOutputDirectory>${project.build.directory}/docs</reportOutputDirectory> + <destDir>docs</destDir> + <nohelp>true</nohelp> + </configuration> + </plugin> <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> @@ -51,6 +61,7 @@ <plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> + <configuration><archive><manifest><mainClass>sr.projet2.Main</mainClass></manifest></archive></configuration> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> diff --git a/serveurFTP/src/main/java/sr/projet2/Request/FEAT.java b/serveurFTP/src/main/java/sr/projet2/Request/FEAT.java new file mode 100644 index 0000000000000000000000000000000000000000..035ed15c386ba8a8184cffec8282014cb0e119ac --- /dev/null +++ b/serveurFTP/src/main/java/sr/projet2/Request/FEAT.java @@ -0,0 +1,28 @@ +package sr.projet2.Request; + +import java.io.IOException; + +import sr.projet2.Server.FtpConnexion; + +public class FEAT implements request { + private FtpConnexion ftp; + public FEAT(FtpConnexion ftp) { + this.ftp =ftp; + } + + @Override + public void send() throws IOException{ + if (this.ftp.getSocket() == null ) { + throw new IOException("Ftp server error"); + } + try { + this.ftp.getBufferedWriter().write("211-Features.\r\n"); + this.ftp.getBufferedWriter().write("211 End.\r\n"); + this.ftp.getBufferedWriter().flush(); + } + catch(IOException e){ + throw new IOException("Connexion failed"); + } + } + +} diff --git a/serveurFTP/src/main/java/sr/projet2/Request/LIST.java b/serveurFTP/src/main/java/sr/projet2/Request/LIST.java new file mode 100644 index 0000000000000000000000000000000000000000..6a1d2f145b0f0b3cbb924127135c1314f03818c8 --- /dev/null +++ b/serveurFTP/src/main/java/sr/projet2/Request/LIST.java @@ -0,0 +1,27 @@ +package sr.projet2.Request; + +import java.io.IOException; + +import sr.projet2.Server.FtpConnexion; + +public class LIST implements request { + private FtpConnexion ftp; + public LIST(FtpConnexion ftp) { + this.ftp =ftp; + } + + @Override + public void send() throws IOException{ + if (this.ftp.getSocket() == null ) { + throw new IOException("Ftp server error"); + } + try { + this.ftp.getBufferedWriter().write("530 please login with USER AND PASS.\r\n"); + this.ftp.getBufferedWriter().flush(); + } + catch(IOException e){ + throw new IOException("Connexion failed"); + } + } + +} diff --git a/serveurFTP/src/main/java/sr/projet2/Request/PASS.java b/serveurFTP/src/main/java/sr/projet2/Request/PASS.java index 5ff9d1338e824d8d0ef3701f2d2aa3a48ac327ea..90e22a9ba910019476f845354316211d2161aed3 100644 --- a/serveurFTP/src/main/java/sr/projet2/Request/PASS.java +++ b/serveurFTP/src/main/java/sr/projet2/Request/PASS.java @@ -6,8 +6,10 @@ import sr.projet2.Server.FtpConnexion; public class PASS implements request { private FtpConnexion ftp; - public PASS(FtpConnexion ftp) { + private String pass; + public PASS(FtpConnexion ftp, String pass) { this.ftp =ftp; + this.pass=pass; } @Override @@ -17,8 +19,14 @@ public class PASS implements request { } try { - this.ftp.getBufferedWriter().write("Login successful.\r\n"); - this.ftp.getBufferedWriter().flush(); + if (this.pass.equals("anonymous")){ + this.ftp.getBufferedWriter().write("230 Login successful.\r\n"); + this.ftp.getBufferedWriter().flush(); + this.ftp.connect(); + }else{ + this.ftp.getBufferedWriter().write("530 unknown Password\r\n"); + this.ftp.getBufferedWriter().flush(); + } } catch(IOException e){ throw new IOException("Connexion failed"); diff --git a/serveurFTP/src/main/java/sr/projet2/Request/PASV.java b/serveurFTP/src/main/java/sr/projet2/Request/PASV.java new file mode 100644 index 0000000000000000000000000000000000000000..4b63fc64af2da144460cab3f89504caa6dccb0a8 --- /dev/null +++ b/serveurFTP/src/main/java/sr/projet2/Request/PASV.java @@ -0,0 +1,35 @@ +package sr.projet2.Request; + +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; + +import sr.projet2.Server.FtpConnexion; + +public class PASV implements request { + private FtpConnexion ftp; + public PASV(FtpConnexion ftp) { + this.ftp =ftp; + } + + @Override + public void send() throws IOException{ + if (this.ftp.getSocket() == null ) { + throw new IOException("Ftp server error"); + } + try { + ServerSocket socket= new ServerSocket(0); + int newPort = socket.getLocalPort(); + int port1 = newPort / 256; + int port2 = newPort % 256; + String ips[] = this.ftp.getSocket().getLocalAddress().getHostAddress().split("\\."); + String ip = ips[0] + "," + ips[1] + "," + ips[2] + "," + ips[3] + "," + port1 + "," + port2; + this.ftp.getBufferedWriter().write("227 Entering Passive Mode ("+ip+").\r\n"); + this.ftp.getBufferedWriter().flush(); + } + catch(IOException e){ + throw new IOException("Connexion failed"); + } + } + +} diff --git a/serveurFTP/src/main/java/sr/projet2/Request/PWD.java b/serveurFTP/src/main/java/sr/projet2/Request/PWD.java new file mode 100644 index 0000000000000000000000000000000000000000..f3c1263935e891dc2ab6830b5620879dd3419eb1 --- /dev/null +++ b/serveurFTP/src/main/java/sr/projet2/Request/PWD.java @@ -0,0 +1,28 @@ +package sr.projet2.Request; + +import java.io.IOException; + +import sr.projet2.Server.FtpConnexion; + +public class PWD implements request { + private FtpConnexion ftp; + public PWD(FtpConnexion ftp) { + this.ftp =ftp; + } + + @Override + public void send() throws IOException{ + if (this.ftp.getSocket() == null ) { + throw new IOException("Ftp server error"); + } + try { + + this.ftp.getBufferedWriter().write("257 \""+this.ftp.getDirectory()+"\" is the current directory.\r\n"); + this.ftp.getBufferedWriter().flush(); + } + catch(IOException e){ + throw new IOException("Connexion failed"); + } + } + +} diff --git a/serveurFTP/src/main/java/sr/projet2/Request/SYST.java b/serveurFTP/src/main/java/sr/projet2/Request/SYST.java new file mode 100644 index 0000000000000000000000000000000000000000..f5d3d8094f523e9421fb933c8dfec8d07848bf5d --- /dev/null +++ b/serveurFTP/src/main/java/sr/projet2/Request/SYST.java @@ -0,0 +1,27 @@ +package sr.projet2.Request; + +import java.io.IOException; + +import sr.projet2.Server.FtpConnexion; + +public class SYST implements request { + private FtpConnexion ftp; + public SYST(FtpConnexion ftp) { + this.ftp =ftp; + } + + @Override + public void send() throws IOException{ + if (this.ftp.getSocket() == null ) { + throw new IOException("Ftp server error"); + } + try { + this.ftp.getBufferedWriter().write("215 UNIX Type: L8.\r\n"); + this.ftp.getBufferedWriter().flush(); + } + catch(IOException e){ + throw new IOException("Connexion failed"); + } + } + +} diff --git a/serveurFTP/src/main/java/sr/projet2/Request/TYPE.java b/serveurFTP/src/main/java/sr/projet2/Request/TYPE.java new file mode 100644 index 0000000000000000000000000000000000000000..35190e9e6ecb1ad119e7671d375d74a302539348 --- /dev/null +++ b/serveurFTP/src/main/java/sr/projet2/Request/TYPE.java @@ -0,0 +1,47 @@ +package sr.projet2.Request; + +import java.io.IOException; + +import sr.projet2.Server.FtpConnexion; + +public class TYPE implements request { + private FtpConnexion ftp; + private String type; + public TYPE(FtpConnexion ftp,String type) { + this.ftp =ftp; + this.type=type; + } + + @Override + public void send() throws IOException{ + if (this.ftp.getSocket() == null ) { + throw new IOException("Ftp server error"); + } + try { + switch(this.type) { + case "A" : + this.type = "ASCII"; + break; + case "E" : + this.type = "EBCDIC"; + break; + case "I" : + this.type = "Switching to Binary mode"; + break; + case "L" : + this.type = "local"; + break; + default: + this.ftp.getBufferedWriter().write("400 incorrect type.\r\n"); + this.ftp.getBufferedWriter().flush(); + return; + } + this.ftp.getBufferedWriter().write("200 Type "+this.type+".\r\n"); + this.ftp.getBufferedWriter().flush(); + } + catch(IOException e){ + throw new IOException("Connexion failed"); + } + } + +} diff --git a/serveurFTP/src/main/java/sr/projet2/Request/USER.java b/serveurFTP/src/main/java/sr/projet2/Request/USER.java index 8844b2e607f01ac775ce98f7814558f8c89e944d..a52229144ffe55501a37f28d5088779e3b7c0035 100644 --- a/serveurFTP/src/main/java/sr/projet2/Request/USER.java +++ b/serveurFTP/src/main/java/sr/projet2/Request/USER.java @@ -6,18 +6,26 @@ import sr.projet2.Server.FtpConnexion; public class USER implements request { private FtpConnexion ftp; - public USER(FtpConnexion ftp) { + private String user; + public USER(FtpConnexion ftp,String user) { this.ftp =ftp; + this.user=user; } @Override public void send() throws IOException{ if (this.ftp.getSocket() == null ) { - + throw new IOException("Ftp server error"); } try { - this.ftp.getBufferedWriter().write("331 PLEASE SPECIFY THE PASSWORD."); - this.ftp.getBufferedWriter().flush(); + if (this.user.equals("anonymous")){ + this.ftp.getBufferedWriter().write("331 PLEASE SPECIFY THE PASSWORD\r\n"); + this.ftp.getBufferedWriter().flush(); + } + else{ + this.ftp.getBufferedWriter().write("530 unknown User\r\n"); + this.ftp.getBufferedWriter().flush(); + } } catch(IOException e){ throw new IOException("Connexion failed"); diff --git a/serveurFTP/src/main/java/sr/projet2/Server/ConnectionServer.java b/serveurFTP/src/main/java/sr/projet2/Server/ConnectionServer.java index 23f09fe08d51aac86d7f1eca76b79958b182c6a0..680d39ac0def9f51280b2ab0f27377120be61afe 100644 --- a/serveurFTP/src/main/java/sr/projet2/Server/ConnectionServer.java +++ b/serveurFTP/src/main/java/sr/projet2/Server/ConnectionServer.java @@ -7,13 +7,21 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; +import java.util.Random; public class ConnectionServer { private int PORT; private ServerSocket srvSckt; public ConnectionServer (int PORT) throws IOException { + if(PORT>1024 && PORT<8080){ this.PORT=PORT; + } + else { + Random rand = new Random(); + int nombreAleatoire = rand.nextInt(8079 - 1025) + 1024; + this.PORT=nombreAleatoire; + } server(); } @@ -22,6 +30,7 @@ public class ConnectionServer { public void server() throws IOException { try { this.srvSckt=new ServerSocket(this.PORT); + System.out.println("server started"); } catch (IOException e) { throw new IOException("Connexion failed"); @@ -31,10 +40,8 @@ public class ConnectionServer { public void serverConnect() throws IOException { try { Socket socket=this.srvSckt.accept(); - BufferedReader bfR =new BufferedReader(new InputStreamReader(socket.getInputStream())); - BufferedWriter bfW = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); - FtpConnexion ftp= new FtpConnexion(socket, bfR, bfW); - ftp.start(); + FtpConnexion ftp= new FtpConnexion(socket); + ftp.run(); } catch(IOException e){ e.printStackTrace(); diff --git a/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java b/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java index 9439c51f2aaf0decc0cd6e306e041d9ef5aaa810..e4df8ccc619151b52b8a7c3787f1fb6e828aed7a 100644 --- a/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java +++ b/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java @@ -3,22 +3,32 @@ package sr.projet2.Server; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; import java.net.Socket; import sr.projet2.Request.AUTH_SSL; import sr.projet2.Request.AUTH_TLS; +import sr.projet2.Request.FEAT; import sr.projet2.Request.PASS; +import sr.projet2.Request.PASV; +import sr.projet2.Request.PWD; +import sr.projet2.Request.SYST; +import sr.projet2.Request.TYPE; import sr.projet2.Request.USER; public class FtpConnexion extends Thread { private Socket socket; private BufferedReader bfR; private BufferedWriter bfW; - public FtpConnexion(Socket socket,BufferedReader bfR,BufferedWriter bfW) { + private boolean Connected; + private String directory; + public FtpConnexion(Socket socket) throws IOException { this.socket=socket; - this.bfR=bfR; - this.bfW=bfW; - + this.bfR =new BufferedReader(new InputStreamReader(this.socket.getInputStream())); + this.bfW = new BufferedWriter(new OutputStreamWriter(this.socket.getOutputStream())); + this.Connected=false; + this.directory="/"; } public void auth() throws IOException{ @@ -47,23 +57,54 @@ public class FtpConnexion extends Thread { } - public void read(String s) throws IOException { - if(s.startsWith("AUTH TLS")) { + public void read(String readLine) throws IOException { + if(readLine.startsWith("AUTH TLS")) { AUTH_TLS request= new AUTH_TLS(this); request.send(); } - else if (s.startsWith("AUTH SSL")){ + else if (readLine.startsWith("AUTH SSL")){ AUTH_SSL request= new AUTH_SSL(this); request.send(); } - else if (s.startsWith("USER")){ - USER request= new USER(this); + else if (readLine.startsWith("USER")){ + String[] mystring=readLine.split(" "); + USER request= new USER(this,mystring[1].trim()); request.send(); } - else if (s.startsWith("PASS")){ - PASS request= new PASS(this); + else if (readLine.startsWith("PASS")){ + String[] mystring=readLine.split(" "); + PASS request= new PASS(this,mystring[1].trim()); request.send(); } + else { + if(this.Connected) { + if(readLine.startsWith("PWD")) { + PWD request= new PWD(this); + request.send(); + } + else if(readLine.startsWith("SYST")) { + SYST request= new SYST(this); + request.send(); + } + else if(readLine.startsWith("FEAT")) { + FEAT request= new FEAT(this); + request.send(); + } + else if (readLine.startsWith("TYPE")){ + String[] mystring=readLine.split(" "); + TYPE request= new TYPE(this,mystring[1].trim()); + request.send(); + } + else if (readLine.startsWith("PASV")){ + PASV request= new PASV(this); + request.send(); + } + } + else { + this.bfW.write("530 server is not connected\r\n"); + this.bfW.flush(); + } + } } @@ -76,6 +117,16 @@ public class FtpConnexion extends Thread { public BufferedReader getBufferedReader() { return this.bfR; } - - + public boolean getConnectedState(){ + return this.Connected; + } + public void connect() { + this.Connected=true; + } + public void disconnect(){ + this.Connected=false; + } + public String getDirectory(){ + return this.directory; + } } diff --git a/serveurFTP/target/classes/sr/projet2/Main.class b/serveurFTP/target/classes/sr/projet2/Main.class index 618307915fd53b30c751562e01ea1a07763f9023..c831be5bfff64cca7e6e16300ada5fe339697cc6 100644 Binary files a/serveurFTP/target/classes/sr/projet2/Main.class and b/serveurFTP/target/classes/sr/projet2/Main.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Request/AUTH_SSL.class b/serveurFTP/target/classes/sr/projet2/Request/AUTH_SSL.class index 3ab14ed8e9707b02b2a2ebeb7527ffa74facdaf8..c56d8c69a147cb02dd4af7a905d7c778fb049a0e 100644 Binary files a/serveurFTP/target/classes/sr/projet2/Request/AUTH_SSL.class and b/serveurFTP/target/classes/sr/projet2/Request/AUTH_SSL.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Request/AUTH_TLS.class b/serveurFTP/target/classes/sr/projet2/Request/AUTH_TLS.class index 2ec0165857e1d599560f02fd0329e1ea028e1d4a..15c72760490642f10345209ad68b69fd38c4178a 100644 Binary files a/serveurFTP/target/classes/sr/projet2/Request/AUTH_TLS.class and b/serveurFTP/target/classes/sr/projet2/Request/AUTH_TLS.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Request/FEAT.class b/serveurFTP/target/classes/sr/projet2/Request/FEAT.class new file mode 100644 index 0000000000000000000000000000000000000000..e7210017bdad9ae8f827a6119c7981447694a7b3 Binary files /dev/null and b/serveurFTP/target/classes/sr/projet2/Request/FEAT.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Request/LIST.class b/serveurFTP/target/classes/sr/projet2/Request/LIST.class new file mode 100644 index 0000000000000000000000000000000000000000..89172d9ac6f3ae59b2fd580bd965f5feeb564407 Binary files /dev/null and b/serveurFTP/target/classes/sr/projet2/Request/LIST.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Request/PASS.class b/serveurFTP/target/classes/sr/projet2/Request/PASS.class index 3bb9f9b777f834b478e3cf6f903fabc15a02f8fb..dfad436850b26687c3096b4bad42989ff56fe3a3 100644 Binary files a/serveurFTP/target/classes/sr/projet2/Request/PASS.class and b/serveurFTP/target/classes/sr/projet2/Request/PASS.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Request/PASV.class b/serveurFTP/target/classes/sr/projet2/Request/PASV.class new file mode 100644 index 0000000000000000000000000000000000000000..9339601d5975d624f9cdead16ac3b92c8eddb3d2 Binary files /dev/null and b/serveurFTP/target/classes/sr/projet2/Request/PASV.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Request/PWD.class b/serveurFTP/target/classes/sr/projet2/Request/PWD.class new file mode 100644 index 0000000000000000000000000000000000000000..bd2e0d30b96f623de53d793640eebeab645495a7 Binary files /dev/null and b/serveurFTP/target/classes/sr/projet2/Request/PWD.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Request/SYST.class b/serveurFTP/target/classes/sr/projet2/Request/SYST.class new file mode 100644 index 0000000000000000000000000000000000000000..7ce9cc66e0e84ccd84bd25d9f765cbaa16d73086 Binary files /dev/null and b/serveurFTP/target/classes/sr/projet2/Request/SYST.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Request/TYPE.class b/serveurFTP/target/classes/sr/projet2/Request/TYPE.class new file mode 100644 index 0000000000000000000000000000000000000000..defc04d7041d592c233da7c8ed927073ddb924f9 Binary files /dev/null and b/serveurFTP/target/classes/sr/projet2/Request/TYPE.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Request/USER.class b/serveurFTP/target/classes/sr/projet2/Request/USER.class index 707407981db19149b1dd8e7c2f60544f365cd80d..441896aaf8363cc9b9dbd90ec1aab6ae7bb978f4 100644 Binary files a/serveurFTP/target/classes/sr/projet2/Request/USER.class and b/serveurFTP/target/classes/sr/projet2/Request/USER.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Server/ConnectionServer.class b/serveurFTP/target/classes/sr/projet2/Server/ConnectionServer.class index fb513cedff2e5e8f4ddfb49e36019ca6c682dd08..c95e1e168da0667603e791efa370b8bde1fb541e 100644 Binary files a/serveurFTP/target/classes/sr/projet2/Server/ConnectionServer.class and b/serveurFTP/target/classes/sr/projet2/Server/ConnectionServer.class differ diff --git a/serveurFTP/target/classes/sr/projet2/Server/FtpConnexion.class b/serveurFTP/target/classes/sr/projet2/Server/FtpConnexion.class index cce33a413af0c96f7751d99c334dcd32341beddc..47d2df0040fc2b08f3e6bb61701ac251be384ea2 100644 Binary files a/serveurFTP/target/classes/sr/projet2/Server/FtpConnexion.class and b/serveurFTP/target/classes/sr/projet2/Server/FtpConnexion.class differ diff --git a/serveurFTP/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/serveurFTP/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 5b510da8045cc45775b38703ad4bcf815dfefe76..c8427259419a3de002956638a4e6d273c7158048 100644 --- a/serveurFTP/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/serveurFTP/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,8 +1,14 @@ /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Server/ConnectionServer.java -/home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/USER.java /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Main.java +/home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/SYST.java +/home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/TYPE.java +/home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/USER.java +/home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/LIST.java /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/AUTH_TLS.java /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/request.java +/home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/PWD.java /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/PASS.java +/home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/PASV.java /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/AUTH_SSL.java /home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java +/home/hocine/eclipse-workspace/serveurFTP/src/main/java/sr/projet2/Request/FEAT.java diff --git a/serveurFTP/target/serveurFTP-1.0-SNAPSHOT.jar b/serveurFTP/target/serveurFTP-1.0-SNAPSHOT.jar index 43b1e6069ce7c6cbd59e507e3fd2782e542c35c0..85cc54b1bba6e2606a9dd8216b5f5abdb3ce1777 100644 Binary files a/serveurFTP/target/serveurFTP-1.0-SNAPSHOT.jar and b/serveurFTP/target/serveurFTP-1.0-SNAPSHOT.jar differ diff --git a/serveurFTP/target/surefire-reports/TEST-sr.projet2.AppTest.xml b/serveurFTP/target/surefire-reports/TEST-sr.projet2.AppTest.xml index 7ac22c58e7aeb18127209488472bcdc0b0ca915b..8f8ab532b44fbd7cfafbb501d26c8dc35c58ce79 100644 --- a/serveurFTP/target/surefire-reports/TEST-sr.projet2.AppTest.xml +++ b/serveurFTP/target/surefire-reports/TEST-sr.projet2.AppTest.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="sr.projet2.AppTest" time="0.036" tests="1" errors="0" skipped="0" failures="0"> +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="sr.projet2.AppTest" time="0.048" tests="1" errors="0" skipped="0" failures="0"> <properties> <property name="sun.desktop" value="gnome"/> <property name="awt.toolkit" value="sun.awt.X11.XToolkit"/> @@ -16,7 +16,7 @@ <property name="sun.java.launcher" value="SUN_STANDARD"/> <property name="user.country" value="FR"/> <property name="sun.boot.library.path" value="/usr/lib/jvm/java-11-openjdk-amd64/lib"/> - <property name="sun.java.command" value="/home/hocine/eclipse-workspace/serveurFTP/target/surefire/surefirebooter4822591889526926263.jar /home/hocine/eclipse-workspace/serveurFTP/target/surefire 2021-02-18T00-17-01_812-jvmRun1 surefire473336015518436635tmp surefire_0141794290096130823tmp"/> + <property name="sun.java.command" value="/home/hocine/eclipse-workspace/serveurFTP/target/surefire/surefirebooter7079129417024759708.jar /home/hocine/eclipse-workspace/serveurFTP/target/surefire 2021-03-07T15-29-07_870-jvmRun1 surefire9845237247780243398tmp surefire_015024554498971470310tmp"/> <property name="jdk.debug" value="release"/> <property name="surefire.test.class.path" value="/home/hocine/eclipse-workspace/serveurFTP/target/test-classes:/home/hocine/eclipse-workspace/serveurFTP/target/classes:/home/hocine/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/hocine/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:"/> <property name="sun.cpu.endian" value="little"/> @@ -32,12 +32,12 @@ <property name="java.specification.name" value="Java Platform API Specification"/> <property name="java.vm.specification.vendor" value="Oracle Corporation"/> <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/> - <property name="surefire.real.class.path" value="/home/hocine/eclipse-workspace/serveurFTP/target/surefire/surefirebooter4822591889526926263.jar"/> + <property name="surefire.real.class.path" value="/home/hocine/eclipse-workspace/serveurFTP/target/surefire/surefirebooter7079129417024759708.jar"/> <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/> <property name="java.runtime.version" value="11.0.10+9-Ubuntu-0ubuntu1.20.04"/> <property name="user.name" value="hocine"/> <property name="path.separator" value=":"/> - <property name="os.version" value="5.4.0-65-generic"/> + <property name="os.version" value="5.4.0-66-generic"/> <property name="java.runtime.name" value="OpenJDK Runtime Environment"/> <property name="file.encoding" value="UTF-8"/> <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/> @@ -57,5 +57,5 @@ <property name="sun.io.unicode.encoding" value="UnicodeLittle"/> <property name="java.class.version" value="55.0"/> </properties> - <testcase name="shouldAnswerWithTrue" classname="sr.projet2.AppTest" time="0.002"/> + <testcase name="shouldAnswerWithTrue" classname="sr.projet2.AppTest" time="0.003"/> </testsuite> \ No newline at end of file diff --git a/serveurFTP/target/surefire-reports/sr.projet2.AppTest.txt b/serveurFTP/target/surefire-reports/sr.projet2.AppTest.txt index 7e49324bb442e17cbcd7e721039aaf0f9c619a94..70439b27ebc909d6ca072e40ea128d16678b8d76 100644 --- a/serveurFTP/target/surefire-reports/sr.projet2.AppTest.txt +++ b/serveurFTP/target/surefire-reports/sr.projet2.AppTest.txt @@ -1,4 +1,4 @@ ------------------------------------------------------------------------------- Test set: sr.projet2.AppTest ------------------------------------------------------------------------------- -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.036 s - in sr.projet2.AppTest +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.048 s - in sr.projet2.AppTest diff --git a/serveurFTP/target/test-classes/sr/projet2/AppTest.class b/serveurFTP/target/test-classes/sr/projet2/AppTest.class index 49fd1cc203d5df763b95d89aba9b5c1ce7ddd1a1..61cbc1431ca1510a79c82a93c96feb0872ec69a1 100644 Binary files a/serveurFTP/target/test-classes/sr/projet2/AppTest.class and b/serveurFTP/target/test-classes/sr/projet2/AppTest.class differ