Compare commits
5 commits
c7d0542d5f
...
1024cf844a
Author | SHA1 | Date | |
---|---|---|---|
1024cf844a | |||
190db8df1e | |||
93b4312e7d | |||
980e3e9f01 | |||
164a9b924f |
2 changed files with 39 additions and 27 deletions
|
@ -780,7 +780,8 @@ expressMiddleware(server, {
|
||||||
token,
|
token,
|
||||||
new TextEncoder().encode(process.env.SECRET_KEY),
|
new TextEncoder().encode(process.env.SECRET_KEY),
|
||||||
);
|
);
|
||||||
console.log('Token verified:', verify.payload); // Log du payload du token
|
// Log du payload du token
|
||||||
|
console.log('Token verified:', verify.payload);
|
||||||
user = await new UserService().findUserByEmail(
|
user = await new UserService().findUserByEmail(
|
||||||
verify.payload.email,
|
verify.payload.email,
|
||||||
);
|
);
|
||||||
|
@ -816,8 +817,9 @@ export const customAuthChecker: AuthChecker<MyContext> = (
|
||||||
roles
|
roles
|
||||||
) => {
|
) => {
|
||||||
if (context.user) {
|
if (context.user) {
|
||||||
//si l 'utilisateur est connecté
|
// si l 'utilisateur est connecté
|
||||||
//vérifier que le user à le role demandé si le tableau de roles à une longueur > 1
|
// vérifier que le user a le role demandé
|
||||||
|
// si le tableau de roles a une longueur > 1
|
||||||
if (roles.length > 0) { // si un role est indiqué au décorateur
|
if (roles.length > 0) { // si un role est indiqué au décorateur
|
||||||
//et que le user a le role parmi ce tableau
|
//et que le user a le role parmi ce tableau
|
||||||
if (roles.includes(context.user.role)) {
|
if (roles.includes(context.user.role)) {
|
||||||
|
@ -1317,7 +1319,12 @@ import styles from '../components/MainNav/MainNav.module.css';
|
||||||
function CategoryButton({name, id}: {name: string, id: string}) {
|
function CategoryButton({name, id}: {name: string, id: string}) {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<Button className={styles.categoryButton} variant="contained" href={`/categories/${id}`} style={{width: 285}}>{name}</Button>
|
<Button
|
||||||
|
className={styles.categoryButton}
|
||||||
|
variant="contained"
|
||||||
|
href={`/categories/${id}`}
|
||||||
|
style={{width: 285}}
|
||||||
|
>{name}</Button>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1906,7 +1913,10 @@ Ensuite, nous avons mis en place l'environnement serveur requis pour le déploie
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test:
|
||||||
- CMD-SHELL
|
- CMD-SHELL
|
||||||
- "curl -f http://backend:4000/graphql?query=%7B__typename%7D -H 'Apollo-Require-Preflight: true' || exit 1"
|
- >
|
||||||
|
curl -f http://backend:4000/graphql?query=%7B__typename%7D
|
||||||
|
-H 'Apollo-Require-Preflight: true'
|
||||||
|
|| exit 1
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 30s
|
timeout: 30s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
@ -1996,7 +2006,8 @@ Ensuite, nous avons mis en place l'environnement serveur requis pour le déploie
|
||||||
# Caddyfile
|
# Caddyfile
|
||||||
|
|
||||||
1123-jaune-1.wns.wilders.dev {
|
1123-jaune-1.wns.wilders.dev {
|
||||||
# Redirect request to production running on port 8000 reverse_proxy localhost:8000
|
# Redirect request to production running on port 8000
|
||||||
|
reverse_proxy localhost:8000
|
||||||
|
|
||||||
# log
|
# log
|
||||||
log {
|
log {
|
||||||
|
@ -2005,7 +2016,8 @@ Ensuite, nous avons mis en place l'environnement serveur requis pour le déploie
|
||||||
}
|
}
|
||||||
|
|
||||||
staging.1123-jaune-1.wns.wilders.dev {
|
staging.1123-jaune-1.wns.wilders.dev {
|
||||||
# Redirect request to staging running on port 8001 reverse_proxy localhost:8001
|
# Redirect request to staging running on port 8001
|
||||||
|
reverse_proxy localhost:8001
|
||||||
|
|
||||||
# log
|
# log
|
||||||
log {
|
log {
|
||||||
|
@ -2014,29 +2026,31 @@ Ensuite, nous avons mis en place l'environnement serveur requis pour le déploie
|
||||||
}
|
}
|
||||||
|
|
||||||
ops.1123-jaune-1.wns.wilders.dev {
|
ops.1123-jaune-1.wns.wilders.dev {
|
||||||
# Redirect request to webhook service running on port 9000 reverse_proxy localhost:9000
|
# Redirect request to webhook service running on port 9000
|
||||||
|
reverse_proxy localhost:9000
|
||||||
# log
|
# log
|
||||||
log {
|
log {
|
||||||
output file /var/log/caddy/ops.log
|
output file /var/log/caddy/ops.log
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// webhook.conf
|
// webhook.conf
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": "update-staging",
|
"id": "update-staging",
|
||||||
"execute-command": "/home/wns_student/apps/oros/staging/fetch-and-deploy.sh",
|
"execute-command": "/home/wns_student/apps/oros/staging/fetch-and-deploy.sh",
|
||||||
"command-working-directory": "/home/wns_student/apps/oros/staging/"
|
"command-working-directory": "/home/wns_student/apps/oros/staging/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "update-prod",
|
"id": "update-prod",
|
||||||
"execute-command": "/home/wns_student/apps/oros/prod/fetch-and-deploy.sh",
|
"execute-command": "/home/wns_student/apps/oros/prod/fetch-and-deploy.sh",
|
||||||
"command-working-directory": "/home/wns_student/apps/oros/prod/"
|
"command-working-directory": "/home/wns_student/apps/oros/prod/"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
# Securité de l’application
|
# Securité de l’application
|
||||||
|
@ -2072,8 +2086,6 @@ La securité d’une application est extrêmement importante. On ne peut pas pen
|
||||||
* Security Headers : Middleware peut ajouter des security headers HTTP aux réponse, ce qui donne une couche additionnelle de sécurité contre les attaques.
|
* Security Headers : Middleware peut ajouter des security headers HTTP aux réponse, ce qui donne une couche additionnelle de sécurité contre les attaques.
|
||||||
* Gestion des Sessions : Middleware peut gérer les cookies de session secures et implemente les mesures comme expiration des cookies et secure flags pour protéder les données de session.
|
* Gestion des Sessions : Middleware peut gérer les cookies de session secures et implemente les mesures comme expiration des cookies et secure flags pour protéder les données de session.
|
||||||
|
|
||||||
\newpage
|
|
||||||
|
|
||||||
# Annexe (diagramme de classe)
|
# Annexe (diagramme de classe)
|
||||||
|
|
||||||
![](images/class diagram.jpg){height=99%}
|
![](images/class diagram.jpg){height=95%}
|
||||||
|
|
Loading…
Reference in a new issue