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) => {
/* #swagger.security = [{ "student": [ ] }, { "teacher": [ ] }] */
res.json({message: "If you see this, you should be authenticated!"});
});
router.get('/testStudentsOnly', studentsOnly, (req, res) => {
/* #swagger.security = [{ "student": [ ] }] */
res.json({message: "If you see this, you should be a student!"});
});
router.get('/testTeachersOnly', teachersOnly, (req, res) => {
/* #swagger.security = [{ "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'
}
]
],
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';

View file

@ -520,10 +520,10 @@
}
}
},
"/login/": {
"/auth/config": {
"get": {
"tags": [
"Login"
"Auth"
],
"description": "",
"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/": {
"get": {
"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,
"alwaysDisplayInConsole" : false,
"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" : [ "+" ],
"notBefore" : 0,
"bearerOnly" : false,

View file

@ -551,7 +551,7 @@
"enabled" : true,
"alwaysDisplayInConsole" : false,
"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" : [ "+" ],
"notBefore" : 0,
"bearerOnly" : false,