Projet

Général

Profil

Development #54852 » check-fc-secrets.py

Paul Marillonnet, 06 juillet 2021 18:05

 
1
import sys
2

    
3
from hobo.franceconnect.views import get_variable
4
from hobo.environment.models import (
5
    Authentic,
6
    Variable,
7
)
8

    
9
global_title = 'unnamed site'
10

    
11
try:
12
    global_title = Variable.objects.get(name='global_title').value
13
except Variable.DoesNotExist:
14
    pass
15

    
16
try:
17
    secret = get_variable('A2_FC_CLIENT_SECRET').value
18
except Authentic.DoesNotExist as e:
19
    print('FC not activated for %s\n' % global_title)
20
else:
21
    if secret and len(secret.strip()) != 64:
22
        print('client secret length for %s is not 64-character-long: %s\n' % (global_title, secret))
23
        sys.exit(0)
24

    
25
    try:
26
        if secret:
27
            int(secret, 16)
28
    except ValueError:
29
        print('client secret for %s is not hexa: %s\n' % (global_title, secret))
30
        sys.exit(0)
31

    
32
    print('well-structured client secret for %s\n' % global_title)