Files
gauvainboiche 0d071d2843 Semaine 11
2026-07-11 21:38:00 +02:00

2.7 KiB

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"