diff --git a/serveurFTP/src/main/java/sr/projet2/Main.java b/serveurFTP/src/main/java/sr/projet2/Main.java
index a7e6f10edfdb350e5136a2e0df6ef870c5b80bb4..2a8b88b2052ce32f646e87949f9d23c13cff07c5 100644
--- a/serveurFTP/src/main/java/sr/projet2/Main.java
+++ b/serveurFTP/src/main/java/sr/projet2/Main.java
@@ -6,7 +6,7 @@ import sr.projet2.Server.ConnectionServer;
 
 public class Main {
 	public static void main(String[] args) throws IOException{
-		ConnectionServer server=new ConnectionServer(2000);
+		ConnectionServer server=new ConnectionServer(2020);
 		server.serverConnect();
 		
 	}
diff --git a/serveurFTP/src/main/java/sr/projet2/Request/AUTH_SSL.java b/serveurFTP/src/main/java/sr/projet2/Request/AUTH_SSL.java
new file mode 100644
index 0000000000000000000000000000000000000000..c36178832e58f7bd2a5bd68e8789c705d9da7294
--- /dev/null
+++ b/serveurFTP/src/main/java/sr/projet2/Request/AUTH_SSL.java
@@ -0,0 +1,27 @@
+package sr.projet2.Request;
+
+import java.io.IOException;
+
+import sr.projet2.Server.FtpConnexion;
+
+public class AUTH_SSL implements request {
+	private FtpConnexion ftp;
+	public AUTH_SSL(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/AUTH_TLS.java b/serveurFTP/src/main/java/sr/projet2/Request/AUTH_TLS.java
new file mode 100644
index 0000000000000000000000000000000000000000..fca7013ebe64a5473c48b56081724d6578067824
--- /dev/null
+++ b/serveurFTP/src/main/java/sr/projet2/Request/AUTH_TLS.java
@@ -0,0 +1,28 @@
+package sr.projet2.Request;
+
+import java.io.IOException;
+
+import sr.projet2.Server.FtpConnexion;
+
+public class AUTH_TLS implements request {
+	private FtpConnexion ftp;
+	public AUTH_TLS(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
new file mode 100644
index 0000000000000000000000000000000000000000..5ff9d1338e824d8d0ef3701f2d2aa3a48ac327ea
--- /dev/null
+++ b/serveurFTP/src/main/java/sr/projet2/Request/PASS.java
@@ -0,0 +1,28 @@
+package sr.projet2.Request;
+
+import java.io.IOException;
+
+import sr.projet2.Server.FtpConnexion;
+
+public class PASS implements request {
+	private FtpConnexion ftp;
+	public PASS(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("Login successful.\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
new file mode 100644
index 0000000000000000000000000000000000000000..8844b2e607f01ac775ce98f7814558f8c89e944d
--- /dev/null
+++ b/serveurFTP/src/main/java/sr/projet2/Request/USER.java
@@ -0,0 +1,27 @@
+package sr.projet2.Request;
+
+import java.io.IOException;
+
+import sr.projet2.Server.FtpConnexion;
+
+public class USER implements request {
+	private FtpConnexion ftp;
+	public USER(FtpConnexion ftp) {
+		this.ftp =ftp;
+	}
+
+	@Override
+	public void send() throws IOException{
+		if (this.ftp.getSocket() == null ) {
+			
+		}
+		try {
+			this.ftp.getBufferedWriter().write("331 PLEASE SPECIFY THE PASSWORD.");
+			this.ftp.getBufferedWriter().flush();
+		}
+		catch(IOException e){
+			throw new IOException("Connexion failed");
+		}
+	}
+
+}
diff --git a/serveurFTP/src/main/java/sr/projet2/Request/request.java b/serveurFTP/src/main/java/sr/projet2/Request/request.java
new file mode 100644
index 0000000000000000000000000000000000000000..d6792143dd823f0f87cec6541999a160f81a3dc3
--- /dev/null
+++ b/serveurFTP/src/main/java/sr/projet2/Request/request.java
@@ -0,0 +1,9 @@
+package sr.projet2.Request;
+
+import java.io.IOException;
+
+public interface  request {
+	
+	public void send() throws IOException;
+
+}
diff --git a/serveurFTP/src/main/java/sr/projet2/Server/ConnectionServer.java b/serveurFTP/src/main/java/sr/projet2/Server/ConnectionServer.java
index 3389d0d09c5979ed93810470c6fc953d34c57a12..23f09fe08d51aac86d7f1eca76b79958b182c6a0 100644
--- a/serveurFTP/src/main/java/sr/projet2/Server/ConnectionServer.java
+++ b/serveurFTP/src/main/java/sr/projet2/Server/ConnectionServer.java
@@ -33,8 +33,8 @@ public class ConnectionServer {
 		Socket socket=this.srvSckt.accept();
 		BufferedReader bfR =new BufferedReader(new InputStreamReader(socket.getInputStream()));
 		BufferedWriter bfW = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
-		bfW.write("220 FTP SERVER\r\n");
-		bfW.flush();
+		FtpConnexion ftp= new FtpConnexion(socket, bfR, bfW);
+		ftp.start();
 		}
 		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
new file mode 100644
index 0000000000000000000000000000000000000000..9439c51f2aaf0decc0cd6e306e041d9ef5aaa810
--- /dev/null
+++ b/serveurFTP/src/main/java/sr/projet2/Server/FtpConnexion.java
@@ -0,0 +1,81 @@
+package sr.projet2.Server;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.net.Socket;
+
+import sr.projet2.Request.AUTH_SSL;
+import sr.projet2.Request.AUTH_TLS;
+import sr.projet2.Request.PASS;
+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) {
+		this.socket=socket;
+		this.bfR=bfR;
+		this.bfW=bfW;
+		
+	}
+	
+	public void auth() throws  IOException{
+		try {
+			this.bfW.write("220 FTP SERVER\r\n");
+			this.bfW.flush();
+		}catch(IOException e) {
+			throw new IOException("FTP Connexion failed");
+		}
+	}
+	
+	public void run() {
+		try {
+			this.auth();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		while(true) {
+			try {
+				String Read = this.bfR.readLine();
+				this.read(Read);
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+	
+	
+	public void read(String s) throws IOException {
+		if(s.startsWith("AUTH TLS")) {
+			AUTH_TLS request= new AUTH_TLS(this);
+			request.send();
+		}
+		else if (s.startsWith("AUTH SSL")){
+			AUTH_SSL request= new AUTH_SSL(this);
+			request.send();
+		}
+		else if (s.startsWith("USER")){
+			USER request= new USER(this);
+			request.send();
+		}
+		else if (s.startsWith("PASS")){
+			PASS request= new PASS(this);
+			request.send();
+		}
+
+	}
+	
+	public Socket getSocket() {
+		return this.socket;
+	}
+	public BufferedWriter getBufferedWriter() {
+		return this.bfW;
+	}
+	public BufferedReader getBufferedReader() {
+		return this.bfR;
+	}
+
+
+}
diff --git a/serveurFTP/target/classes/sr/projet2/Main.class b/serveurFTP/target/classes/sr/projet2/Main.class
index f0b87ee88054e2d5623baa352556a76f34f4da15..618307915fd53b30c751562e01ea1a07763f9023 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
new file mode 100644
index 0000000000000000000000000000000000000000..3ab14ed8e9707b02b2a2ebeb7527ffa74facdaf8
Binary files /dev/null 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
new file mode 100644
index 0000000000000000000000000000000000000000..2ec0165857e1d599560f02fd0329e1ea028e1d4a
Binary files /dev/null and b/serveurFTP/target/classes/sr/projet2/Request/AUTH_TLS.class differ
diff --git a/serveurFTP/target/classes/sr/projet2/Request/PASS.class b/serveurFTP/target/classes/sr/projet2/Request/PASS.class
new file mode 100644
index 0000000000000000000000000000000000000000..3bb9f9b777f834b478e3cf6f903fabc15a02f8fb
Binary files /dev/null and b/serveurFTP/target/classes/sr/projet2/Request/PASS.class differ
diff --git a/serveurFTP/target/classes/sr/projet2/Request/USER.class b/serveurFTP/target/classes/sr/projet2/Request/USER.class
new file mode 100644
index 0000000000000000000000000000000000000000..707407981db19149b1dd8e7c2f60544f365cd80d
Binary files /dev/null and b/serveurFTP/target/classes/sr/projet2/Request/USER.class differ
diff --git a/serveurFTP/target/classes/sr/projet2/Request/request.class b/serveurFTP/target/classes/sr/projet2/Request/request.class
new file mode 100644
index 0000000000000000000000000000000000000000..86cb7691e189a95bc0f51876ab5b1f656d1958c7
Binary files /dev/null and b/serveurFTP/target/classes/sr/projet2/Request/request.class differ
diff --git a/serveurFTP/target/classes/sr/projet2/Server/ConnectionServer.class b/serveurFTP/target/classes/sr/projet2/Server/ConnectionServer.class
index c756048d1ae1f7b554fca7ec33d5b5560e207462..fb513cedff2e5e8f4ddfb49e36019ca6c682dd08 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
new file mode 100644
index 0000000000000000000000000000000000000000..cce33a413af0c96f7751d99c334dcd32341beddc
Binary files /dev/null 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 6090f07f86be35efd41eef90e96f5f317e93159d..5b510da8045cc45775b38703ad4bcf815dfefe76 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,2 +1,8 @@
 /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/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/PASS.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
diff --git a/serveurFTP/target/serveurFTP-1.0-SNAPSHOT.jar b/serveurFTP/target/serveurFTP-1.0-SNAPSHOT.jar
index d5dc5f4b9b40bbb0aac801343b22bb321f72ca4c..43b1e6069ce7c6cbd59e507e3fd2782e542c35c0 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 fe02e92f1138a2091c0d1554f50be081b44b81cd..7ac22c58e7aeb18127209488472bcdc0b0ca915b 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.033" 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.036" 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/surefirebooter14701359487179658639.jar /home/hocine/eclipse-workspace/serveurFTP/target/surefire 2021-02-11T00-09-40_142-jvmRun1 surefire2274530294192485131tmp surefire_017171065220829500292tmp"/>
+    <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="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,7 +32,7 @@
     <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/surefirebooter14701359487179658639.jar"/>
+    <property name="surefire.real.class.path" value="/home/hocine/eclipse-workspace/serveurFTP/target/surefire/surefirebooter4822591889526926263.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"/>
@@ -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.001"/>
+  <testcase name="shouldAnswerWithTrue" classname="sr.projet2.AppTest" time="0.002"/>
 </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 23a25bb11e03910bb92037ccc728606523b6a71e..7e49324bb442e17cbcd7e721039aaf0f9c619a94 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.033 s - in sr.projet2.AppTest
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.036 s - in sr.projet2.AppTest