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