# 5.3 ## Créer les utilisateurs ``` uv run .\manage.py shell -c "from django.contrib.auth.models import User; User.objects.create_user('alice', 'alice@example.com', 'alicepass123'); User.objects.create_user('bob', 'bob@example.com', 'bobpass123'); print('Users created')" ``` ## Créer les jetons ``` uv run .\manage.py shell -c "from django.contrib.auth.models import User; from rest_framework.authtoken.models import Token; print('ALICE:', Token.objects.get_or_create(user=User.objects.get(username='alice'))[0].key); print('BOB:', Token.objects.get_or_create(user=User.objects.get(username='bob'))[0].key)" ``` ## Exposer les jetons ``` $ALICE = "49a597b676ef22f8bd33ed94d3e9e657c05c4338" $BOB = "b710b34ee3244c4da396f6d7a81d5d6d02d94441" ``` ## Créer équipement ALICE ``` $body = '{"hostname":"alice-srv","ip":"192.168.1.10","is_active":true}' curl.exe -i -X POST -H "Authorization: Token $ALICE" -H "Content-Type: application/json" -d $body http://127.0.0.1:8000/api/equipments/ ``` => Résultat : 201 ## Créer équipement BOB ``` $body = '{"hostname":"bob-srv","ip":"192.168.1.11","is_active":true}' curl.exe -i -X POST -H "Authorization: Token $BOB" -H "Content-Type: application/json" -d $body http://127.0.0.1:8000/api/equipments/ ``` => Résultat : 201 ## Lister équipement ALICE ``` curl.exe -i -H "Authorization: Token $ALICE" http://127.0.0.1:8000/api/equipments/ ``` => Résultat : 200 ## Lister équipement BOB ``` curl.exe -i -H "Authorization: Token $BOB" http://127.0.0.1:8000/api/equipments/ ``` => Résultat : 200 ## BOB tente de créer un équipement ALICE ``` $body = '{"hostname":"forged-srv","ip":"192.168.1.99","is_active":true,"owner":1}' curl.exe -i -X POST -H "Authorization: Token $BOB" -H "Content-Type: application/json" -d $body http://127.0.0.1:8000/api/equipments/ ``` => Résultat : 201 (c'est pas normal) (alors en fait, même en forçant le "owner" avec "Alice" ça le créé pour Bob. Donc ça n'empêche pas la création mais ça empêche de le faire en un autre nom. J'investiguerai plus tard) # 5.4 ## 100 requêtes en tant que "Bob" ``` for ($i = 1; $i -le 100; $i++) { curl.exe -s -o /dev/null -w "%{http_code}`n" -H "Authorization: Token $BOB" http://127.0.0.1:8000/api/equipments/ } ``` => Résultat : que des 200. En changeant : `"DEFAULT_THROTTLE_RATES": {"user": "1000/day", "anon": "50/day"},` en `"DEFAULT_THROTTLE_RATES": {"user": "5/minute", "anon": "50/day"},` J'obtiens bien : ``` > for ($i = 1; $i -le 100; $i++) { >> curl.exe -s -o /dev/null -w "%{http_code}`n" -H "Authorization: Token $BOB" http://127.0.0.1:8000/api/equipments/ >> } 200 200 200 200 200 429 429 429 429 ``` ## 100 requêtes en tant que "Anon"