Skip to content
Snippets Groups Projects
Commit b41e2937 authored by fabiovandewaeter's avatar fabiovandewaeter
Browse files

save

parent 4b677ef7
No related branches found
No related tags found
No related merge requests found
...@@ -12,23 +12,30 @@ Vous proposerez un mécanisme d'authentification adéquat tenant compte des diff ...@@ -12,23 +12,30 @@ Vous proposerez un mécanisme d'authentification adéquat tenant compte des diff
## Instructions de build et d'exécution AVEC la vidéo ## Instructions de build et d'exécution AVEC la vidéo
La vidéo `video.mp4` montre pas à pas comment utiliser ce projet (voir la [section suivante pour avoir les détails des commandes](#instructions-de-build-et-dexécution-sans-la-vidéo)) La vidéo `video.mp4` montre pas à pas comment utiliser ce projet
### Description de la vidéo
On commence par compiler puis démarrer le programme `FlopBox`, puis on démarre 2 serveurs FTP sur les ports `2121` et `2122` et l'utilisateur `user/password`
En haut à droite se trouve le dossier du serveur1 `dossier_serveur_ftp1` et en dessous le dossier du serveur2 `dossier_serveur_ftp2`, qui sont vides au départ
## Instructions de build et d'exécution SANS la vidéo ## Instructions de build et d'exécution SANS la vidéo
### Build l'archive ### Build l'archive
Pour créer l'archive `FlopBox.jar`, il faut avoir Java 17 et Maven d'installés, et exécuter la commande suivante à la racine du projet : Pour créer l'archive `FlopBox.jar`, il faut avoir Java 17 et Maven d'installés, et exécuter la commande suivante à la racine du projet :
```shell ```shell
mvn clean package mvn clean package
``` ```
### Utiliser le programme ### Utiliser le programme
Lancer le programme FlopBox :
```shell ```shell
java -jar target/FlopBox.jar java -jar target/FlopBox.jar
``` ```
Lancer 2 serveurs FTP pour pouvoir tester ; le serveur1 utilise le dossier `dossier_serveur_ftp1` et le SERVEUR2 utilise le dossier `dossier_serveur_ftp2` :
```shell ```shell
pip install --user pyftpdlib pip install --user pyftpdlib
python3 serveur_ftp.py serveur1 python3 serveur_ftp.py serveur1
...@@ -39,8 +46,6 @@ Identifiants : ...@@ -39,8 +46,6 @@ Identifiants :
- mode anonyme : anonymous/anonymous - mode anonyme : anonymous/anonymous
- utilisateur : user/password - utilisateur : user/password
ou ftp.ubuntu.com
### Exécuter les tests ### Exécuter les tests
Pour exécuter uniquement les tests il faut lancer la commande suivante : Pour exécuter uniquement les tests il faut lancer la commande suivante :
...@@ -49,14 +54,6 @@ Pour exécuter uniquement les tests il faut lancer la commande suivante : ...@@ -49,14 +54,6 @@ Pour exécuter uniquement les tests il faut lancer la commande suivante :
mvn test mvn test
``` ```
```shell
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer valid-token-1" -d '{"alias":"mon-ftp","host":"localhost","port":2121}' http://localhost:8080/ftps
curl -H "Authorization: Bearer valid-token-1" http://localhost:8080/ftps
curl -H "Authorization: Bearer valid-token-1" -o fichier.html http://localhost:8080/ftps/mon-ftp/test/download
```
## Détails du code ## Détails du code
### Générer la javadoc ### Générer la javadoc
Lancer la commande suivante : Lancer la commande suivante :
...@@ -180,3 +177,9 @@ curl -X DELETE -H "Authorization: Bearer valid-token-1" -H "X-FTP-User: user" -H ...@@ -180,3 +177,9 @@ curl -X DELETE -H "Authorization: Bearer valid-token-1" -H "X-FTP-User: user" -H
```shell ```shell
curl -X GET -H "Authorization: Bearer valid-token-1" -H "X-FTP-User: user" -H "X-FTP-Pass: password" http://localhost:8080/ftps/search/fichier1 curl -X GET -H "Authorization: Bearer valid-token-1" -H "X-FTP-User: user" -H "X-FTP-Pass: password" http://localhost:8080/ftps/search/fichier1
``` ```
## L'API
Les routes sont visibles dans le fichier `src/main/java/fil/sr2/flopbox/FTPResource.java`
![swagger](./assets/swagger.png)
assets/swagger.png

63.1 KiB

...@@ -122,29 +122,6 @@ public class FTPResourceTest { ...@@ -122,29 +122,6 @@ public class FTPResourceTest {
assertTrue(((byte[]) response.getEntity()).length > 0); assertTrue(((byte[]) response.getEntity()).length > 0);
} }
@Test
public void testUploadFile() throws IOException {
FTPResource resource = new FTPResource();
String path = "uploaded.txt";
InputStream stream = new ByteArrayInputStream("content".getBytes());
Response response = resource.uploadFile(ALIAS, path, USER, PASS, stream);
assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
File uploaded = new File(ftpHomeDir, path);
assertTrue(uploaded.exists());
}
@Test
public void testDeleteResource() throws IOException {
String filename = "/to_delete.txt";
File toDelete = new File(ftpHomeDir, filename);
FileUtils.writeStringToFile(toDelete, "test content", StandardCharsets.UTF_8);
FTPResource resource = new FTPResource();
Response response = resource.deleteResource(ALIAS, filename, USER, PASS);
assertEquals(Response.Status.NO_CONTENT.getStatusCode(), response.getStatus());
assertFalse(toDelete.exists());
}
@Test @Test
public void testSearchFiles() { public void testSearchFiles() {
FTPResource resource = new FTPResource(); FTPResource resource = new FTPResource();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment