feat: Configureer auth Swagger

This commit is contained in:
Tibo De Peuter 2025-03-09 14:26:04 +01:00
parent e139f59afa
commit 855620cb67
Signed by: tdpeuter
GPG key ID: 38297DE43F75FFE2
5 changed files with 125 additions and 5 deletions

View file

@ -9,14 +9,17 @@ router.get('/config', (req, res) => {
}); });
router.get('/testAuthenticatedOnly', authenticatedOnly, (req, res) => { router.get('/testAuthenticatedOnly', authenticatedOnly, (req, res) => {
/* #swagger.security = [{ "student": [ ] }, { "teacher": [ ] }] */
res.json({message: "If you see this, you should be authenticated!"}); res.json({message: "If you see this, you should be authenticated!"});
}); });
router.get('/testStudentsOnly', studentsOnly, (req, res) => { router.get('/testStudentsOnly', studentsOnly, (req, res) => {
/* #swagger.security = [{ "student": [ ] }] */
res.json({message: "If you see this, you should be a student!"}); res.json({message: "If you see this, you should be a student!"});
}); });
router.get('/testTeachersOnly', teachersOnly, (req, res) => { router.get('/testTeachersOnly', teachersOnly, (req, res) => {
/* #swagger.security = [{ "teacher": [ ] }] */
res.json({message: "If you see this, you should be a teacher!"}); res.json({message: "If you see this, you should be a teacher!"});
}); });

View file

@ -17,7 +17,37 @@ const doc = {
{ {
url: 'https://sel2-1.ugent.be/api' url: 'https://sel2-1.ugent.be/api'
} }
] ],
components: {
securitySchemes: {
student: {
type: 'oauth2',
flows: {
implicit: {
authorizationUrl: 'http://localhost:7080/realms/student/protocol/openid-connect/auth',
scopes: {
openid: 'openid',
profile: 'profile',
email: 'email'
}
}
}
},
teacher: {
type: 'oauth2',
flows: {
implicit: {
authorizationUrl: 'http://localhost:7080/realms/teacher/protocol/openid-connect/auth',
scopes: {
openid: 'openid',
profile: 'profile',
email: 'email'
}
}
}
}
}
}
}; };
const outputFile = './swagger.json'; const outputFile = './swagger.json';

View file

@ -520,10 +520,10 @@
} }
} }
}, },
"/login/": { "/auth/config": {
"get": { "get": {
"tags": [ "tags": [
"Login" "Auth"
], ],
"description": "", "description": "",
"responses": { "responses": {
@ -533,6 +533,63 @@
} }
} }
}, },
"/auth/testAuthenticatedOnly": {
"get": {
"tags": [
"Auth"
],
"description": "",
"responses": {
"200": {
"description": "OK"
}
},
"security": [
{
"student": []
},
{
"teacher": []
}
]
}
},
"/auth/testStudentsOnly": {
"get": {
"tags": [
"Auth"
],
"description": "",
"responses": {
"200": {
"description": "OK"
}
},
"security": [
{
"student": []
}
]
}
},
"/auth/testTeachersOnly": {
"get": {
"tags": [
"Auth"
],
"description": "",
"responses": {
"200": {
"description": "OK"
}
},
"security": [
{
"teacher": []
}
]
}
},
"/theme/": { "/theme/": {
"get": { "get": {
"tags": [ "tags": [
@ -708,5 +765,35 @@
} }
} }
} }
},
"components": {
"securitySchemes": {
"student": {
"type": "oauth2",
"flows": {
"implicit": {
"authorizationUrl": "http://localhost:7080/realms/student/protocol/openid-connect/auth",
"scopes": {
"openid": "openid",
"profile": "profile",
"email": "email"
}
}
}
},
"teacher": {
"type": "oauth2",
"flows": {
"implicit": {
"authorizationUrl": "http://localhost:7080/realms/teacher/protocol/openid-connect/auth",
"scopes": {
"openid": "openid",
"profile": "profile",
"email": "email"
}
}
}
}
}
} }
} }

View file

@ -551,7 +551,7 @@
"enabled" : true, "enabled" : true,
"alwaysDisplayInConsole" : false, "alwaysDisplayInConsole" : false,
"clientAuthenticatorType" : "client-jwt", "clientAuthenticatorType" : "client-jwt",
"redirectUris" : [ "urn:ietf:wg:oauth:2.0:oob", "http://localhost:5173/*", "http://localhost:5173" ], "redirectUris" : [ "urn:ietf:wg:oauth:2.0:oob", "http://localhost:5173/*", "http://localhost:5173", "http://localhost:3000/api-docs/oauth2-redirect.html" ],
"webOrigins" : [ "+" ], "webOrigins" : [ "+" ],
"notBefore" : 0, "notBefore" : 0,
"bearerOnly" : false, "bearerOnly" : false,

View file

@ -551,7 +551,7 @@
"enabled" : true, "enabled" : true,
"alwaysDisplayInConsole" : false, "alwaysDisplayInConsole" : false,
"clientAuthenticatorType" : "client-secret", "clientAuthenticatorType" : "client-secret",
"redirectUris" : [ "urn:ietf:wg:oauth:2.0:oob", "http://localhost:5173/*", "http://localhost:5173" ], "redirectUris" : [ "urn:ietf:wg:oauth:2.0:oob", "http://localhost:5173/*", "http://localhost:5173", "http://localhost:3000/api-docs/oauth2-redirect.html" ],
"webOrigins" : [ "+" ], "webOrigins" : [ "+" ],
"notBefore" : 0, "notBefore" : 0,
"bearerOnly" : false, "bearerOnly" : false,