Merge pull request 'Fix 403 errors' (#12) from backend-test into main
All checks were successful
Format / formatting (push) Successful in 6s
Build / build (push) Successful in 40s
CI / build (push) Successful in 11s

Reviewed-on: #12
Reviewed-by: adnane <adnane.alami@bordeaux-inp.fr>
Reviewed-by: omar <omar.el_alaoui_el_ismaili@bordeaux-inp.fr>
Reviewed-by: Theo <tlelez@enseirb-matmeca.fr>
Reviewed-by: anas <anas.maillal@bordeaux-inp.fr>
This commit is contained in:
piair 2025-05-07 11:08:57 +02:00
commit d9aaa225aa
11 changed files with 2766 additions and 21 deletions

View File

@ -2,6 +2,7 @@ help:
@echo "make [clean dev-front prod dev-back dev]" @echo "make [clean dev-front prod dev-back dev]"
clean: clean:
pkill -9 node
@cp config/frontdev.env front/MyINPulse-front/.env @cp config/frontdev.env front/MyINPulse-front/.env
@cp config/frontdev.env .env @cp config/frontdev.env .env
@cp config/frontdev.env MyINPulse-back/.env @cp config/frontdev.env MyINPulse-back/.env

View File

@ -56,12 +56,18 @@ public class WebSecurityCustomConfiguration {
http.authorizeHttpRequests( http.authorizeHttpRequests(
authorize -> authorize ->
authorize authorize
.requestMatchers("/entrepreneur/**", "/shared/**") .requestMatchers("/entrepreneur/**")
.access(hasRole("REALM_MyINPulse-entrepreneur")) .access(hasRole("REALM_MyINPulse-entrepreneur"))
.requestMatchers("/admin/**", "/shared/**") .requestMatchers("/admin/**")
.access(hasRole("REALM_MyINPulse-admin")) .access(hasRole("REALM_MyINPulse-admin"))
.requestMatchers("/shared/**")
.hasAnyRole(
"REALM_MyINPulse-admin",
"REALM_MyINPulse-entrepreneur")
.requestMatchers("/unauth/**") .requestMatchers("/unauth/**")
.authenticated()) .authenticated()
.anyRequest()
.denyAll())
.oauth2ResourceServer( .oauth2ResourceServer(
oauth2 -> oauth2 ->
oauth2.jwt( oauth2.jwt(

View File

@ -1,6 +1,6 @@
spring.application.name=myinpulse spring.application.name=myinpulse
spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://localhost:7080/realms/test/protocol/openid-connect/certs spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://localhost:7080/realms/${VITE_KEYCLOAK_REALM}/protocol/openid-connect/certs
spring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:7080/realms/test spring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:7080/realms/${VITE_KEYCLOAK_REALM}
spring.datasource.url=jdbc:postgresql://${DATABASE_URL}/${BACKEND_DB} spring.datasource.url=jdbc:postgresql://${DATABASE_URL}/${BACKEND_DB}
spring.datasource.username=${BACKEND_USER} spring.datasource.username=${BACKEND_USER}
spring.datasource.password=${BACKEND_PASSWORD} spring.datasource.password=${BACKEND_PASSWORD}

View File

@ -16,7 +16,7 @@ BACKEND_PASSWORD=backend_db_user_password
DATABASE_URL=localhost:5433 DATABASE_URL=localhost:5433
VITE_KEYCLOAK_URL=http://localhost:7080 VITE_KEYCLOAK_URL=http://localhost:7080
VITE_KEYCLOAK_CLIENT_ID=myinpulse-dev VITE_KEYCLOAK_CLIENT_ID=MyINPulse-vite
VITE_KEYCLOAK_REALM=test VITE_KEYCLOAK_REALM=MyINPulse
VITE_APP_URL=http://localhost:5173 VITE_APP_URL=http://localhost:5173
VITE_BACKEND_URL=http://localhost:8081/ VITE_BACKEND_URL=http://localhost:8081/

View File

@ -22,6 +22,8 @@ paths:
description: Bad Request - Invalid project data provided (e.g., missing required fields). description: Bad Request - Invalid project data provided (e.g., missing required fields).
"401": "401":
description: Unauthorized - Authentication required or invalid token. description: Unauthorized - Authentication required or invalid token.
"403":
description: Bad Token - Invalid Keycloack configuration.
post: post:
operationId: addProjectManually operationId: addProjectManually
@ -49,6 +51,8 @@ paths:
description: Bad Request - Project already exists. description: Bad Request - Project already exists.
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/admin/projects/pending: /admin/projects/pending:
@ -71,6 +75,8 @@ paths:
$ref: "./main.yaml#/components/schemas/project" # Assuming pending projects use the same schema $ref: "./main.yaml#/components/schemas/project" # Assuming pending projects use the same schema
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/admin/request-join: /admin/request-join:
get: get:
@ -92,6 +98,8 @@ paths:
$ref: "./main.yaml#/components/schemas/joinRequest" $ref: "./main.yaml#/components/schemas/joinRequest"
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/admin/request-join/decision/{joinRequestId}: /admin/request-join/decision/{joinRequestId}:
post: post:
@ -122,6 +130,8 @@ paths:
description: Bad Request - Invalid input (e.g., missing decision). description: Bad Request - Invalid input (e.g., missing decision).
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/admin/projects/pending/decision: /admin/projects/pending/decision:
@ -150,6 +160,8 @@ paths:
description: Bad Request - Invalid input (e.g., missing decision). description: Bad Request - Invalid input (e.g., missing decision).
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/admin/pending-accounts: # Path updated /admin/pending-accounts: # Path updated
@ -172,6 +184,8 @@ paths:
$ref: "./main.yaml#/components/schemas/user-entrepreneur" $ref: "./main.yaml#/components/schemas/user-entrepreneur"
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/admin/accounts/validate/{userId}: /admin/accounts/validate/{userId}:
post: # Changed to POST as it changes state post: # Changed to POST as it changes state
@ -195,7 +209,8 @@ paths:
description: No Content - Account validated successfully. description: No Content - Account validated successfully.
"400": "400":
description: Bad Request - Invalid user ID format. description: Bad Request - Invalid user ID format.
"403":
description: Bad Token - Invalid Keycloack configuration.
"401": "401":
description: Unauthorized. description: Unauthorized.
@ -217,6 +232,8 @@ paths:
type: array type: array
items: items:
$ref: "./main.yaml#/components/schemas/appointment" $ref: "./main.yaml#/components/schemas/appointment"
"403":
description: Bad Token - Invalid Keycloack configuration.
"404": "404":
description: no appointments found. description: no appointments found.
"401": "401":
@ -254,6 +271,8 @@ paths:
schema: { $ref: "./main.yaml#/components/schemas/report" } schema: { $ref: "./main.yaml#/components/schemas/report" }
"400": "400":
description: Bad Request - Invalid input (e.g., missing content, invalid appointment ID format). description: Bad Request - Invalid input (e.g., missing content, invalid appointment ID format).
"403":
description: Bad Token - Invalid Keycloack configuration.
"401": "401":
description: Unauthorized. description: Unauthorized.
@ -288,6 +307,8 @@ paths:
schema: { $ref: "./main.yaml#/components/schemas/report" } schema: { $ref: "./main.yaml#/components/schemas/report" }
"400": "400":
description: Bad Request - Invalid input (e.g., missing content). description: Bad Request - Invalid input (e.g., missing content).
"403":
description: Bad Token - Invalid Keycloack configuration.
"401": "401":
description: Unauthorized. description: Unauthorized.
@ -314,6 +335,8 @@ paths:
description: No Content - Project removed successfully. description: No Content - Project removed successfully.
"400": "400":
description: Bad Request - Invalid project ID format. description: Bad Request - Invalid project ID format.
"403":
description: Bad Token - Invalid Keycloack configuration.
"401": "401":
description: Unauthorized. description: Unauthorized.
@ -341,6 +364,8 @@ paths:
description: No Content - Admin rights granted successfully. description: No Content - Admin rights granted successfully.
"400": "400":
description: Bad Request - Invalid user ID format or user is already an admin. description: Bad Request - Invalid user ID format or user is already an admin.
"403":
description: Bad Token - Invalid Keycloack configuration.
"401": "401":
description: Unauthorized. description: Unauthorized.
@ -358,3 +383,5 @@ paths:
description: No Content - Admin user created successfully. description: No Content - Admin user created successfully.
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.

View File

@ -257,6 +257,8 @@ paths:
description: Bad Request - Problem processing the token or user data derived from it. description: Bad Request - Problem processing the token or user data derived from it.
'401': '401':
description: Unauthorized - Valid authentication token required. description: Unauthorized - Valid authentication token required.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/unauth/request-join/{projectId}': '/unauth/request-join/{projectId}':
post: post:
summary: Request to join an existing project summary: Request to join an existing project
@ -278,6 +280,8 @@ paths:
description: Bad Request - Invalid project ID format description: Bad Request - Invalid project ID format
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'409': '409':
description: Already member/request pending. description: Already member/request pending.
/admin/pending-accounts: /admin/pending-accounts:
@ -301,6 +305,8 @@ paths:
$ref: '#/components/schemas/user-entrepreneur' $ref: '#/components/schemas/user-entrepreneur'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/admin/accounts/validate/{userId}': '/admin/accounts/validate/{userId}':
post: post:
operationId: validateUserAccount operationId: validateUserAccount
@ -326,6 +332,8 @@ paths:
description: Bad Request - Invalid user ID format. description: Bad Request - Invalid user ID format.
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/admin/request-join: /admin/request-join:
get: get:
operationId: getPendingProjects operationId: getPendingProjects
@ -347,6 +355,8 @@ paths:
$ref: '#/components/schemas/joinRequest' $ref: '#/components/schemas/joinRequest'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/admin/request-join/decision/{joinRequestId}': '/admin/request-join/decision/{joinRequestId}':
post: post:
summary: Approve or reject a pending project join request summary: Approve or reject a pending project join request
@ -376,6 +386,8 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing decision).' description: 'Bad Request - Invalid input (e.g., missing decision).'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/admin/projects: /admin/projects:
get: get:
operationId: getAdminProjects operationId: getAdminProjects
@ -399,6 +411,8 @@ paths:
description: 'Bad Request - Invalid project data provided (e.g., missing required fields).' description: 'Bad Request - Invalid project data provided (e.g., missing required fields).'
'401': '401':
description: Unauthorized - Authentication required or invalid token. description: Unauthorized - Authentication required or invalid token.
'403':
description: Bad Token - Invalid Keycloack configuration.
post: post:
operationId: addProjectManually operationId: addProjectManually
summary: Manually add a new project summary: Manually add a new project
@ -424,6 +438,8 @@ paths:
$ref: '#/components/schemas/project' $ref: '#/components/schemas/project'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'409': '409':
description: Bad Request - Project already exists. description: Bad Request - Project already exists.
/admin/projects/pending: /admin/projects/pending:
@ -447,6 +463,8 @@ paths:
$ref: '#/components/schemas/project' $ref: '#/components/schemas/project'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/admin/projects/pending/decision: /admin/projects/pending/decision:
post: post:
operationId: decidePendingProject operationId: decidePendingProject
@ -474,6 +492,8 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing decision).' description: 'Bad Request - Invalid input (e.g., missing decision).'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/admin/appointments/report/{appointmentId}': '/admin/appointments/report/{appointmentId}':
post: post:
operationId: createAppointmentReport operationId: createAppointmentReport
@ -510,6 +530,8 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing content, invalid appointment ID format).' description: 'Bad Request - Invalid input (e.g., missing content, invalid appointment ID format).'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
put: put:
operationId: updateAppointmentReport operationId: updateAppointmentReport
summary: Update an existing appointment report summary: Update an existing appointment report
@ -545,6 +567,8 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing content).' description: 'Bad Request - Invalid input (e.g., missing content).'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/admin/appointments/upcoming: /admin/appointments/upcoming:
get: get:
operationId: getUpcomingAppointments operationId: getUpcomingAppointments
@ -566,6 +590,8 @@ paths:
$ref: '#/components/schemas/appointment' $ref: '#/components/schemas/appointment'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'404': '404':
description: no appointments found. description: no appointments found.
'/admin/projects/{projectId}': '/admin/projects/{projectId}':
@ -593,6 +619,8 @@ paths:
description: Bad Request - Invalid project ID format. description: Bad Request - Invalid project ID format.
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/admin/make-admin/{userId}': '/admin/make-admin/{userId}':
post: post:
operationId: grantAdminRights operationId: grantAdminRights
@ -618,6 +646,8 @@ paths:
description: Bad Request - Invalid user ID format or user is already an admin. description: Bad Request - Invalid user ID format or user is already an admin.
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/admin/create-account: /admin/create-account:
post: post:
summary: Creates Admin out Jwt Token summary: Creates Admin out Jwt Token
@ -632,6 +662,8 @@ paths:
description: No Content - Admin user created successfully. description: No Content - Admin user created successfully.
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/shared/projects/sectionCells/{projectId}/{sectionId}/{date}': '/shared/projects/sectionCells/{projectId}/{sectionId}/{date}':
get: get:
operationId: getSectionCellsByDate operationId: getSectionCellsByDate
@ -676,6 +708,8 @@ paths:
description: Bad Request - Invalid parameter format. description: Bad Request - Invalid parameter format.
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/shared/projects/entrepreneurs/{projectId}': '/shared/projects/entrepreneurs/{projectId}':
get: get:
operationId: getProjectEntrepreneurs operationId: getProjectEntrepreneurs
@ -706,7 +740,7 @@ paths:
'401': '401':
description: Unauthorized. description: Unauthorized.
'403': '403':
description: Forbidden - User does not have access to this project. description: Forbidden - User does not have access to this project or invalid Keycloack configuration.
'404': '404':
description: Not Found - Project not found. description: Not Found - Project not found.
'/shared/projects/admin/{projectId}': '/shared/projects/admin/{projectId}':
@ -737,7 +771,7 @@ paths:
'401': '401':
description: Unauthorized. description: Unauthorized.
'403': '403':
description: Forbidden - User does not have access to this project. description: Forbidden - User does not have access to this project or invalid Keycloack configuration.
'404': '404':
description: Not Found - Project not found. description: Not Found - Project not found.
'/shared/projects/appointments/{projectId}': '/shared/projects/appointments/{projectId}':
@ -769,6 +803,8 @@ paths:
$ref: '#/components/schemas/appointment' $ref: '#/components/schemas/appointment'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/shared/appointments/report/{appointmentId}': '/shared/appointments/report/{appointmentId}':
get: get:
operationId: getAppointmentReport operationId: getAppointmentReport
@ -798,6 +834,8 @@ paths:
format: binary format: binary
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/shared/appointments/request: /shared/appointments/request:
post: post:
operationId: requestAppointment operationId: requestAppointment
@ -823,6 +861,8 @@ paths:
description: Bad Request - Invalid appointment details. description: Bad Request - Invalid appointment details.
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/entrepreneur/projects: /entrepreneur/projects:
get: get:
summary: gets the projectId of the project associated with the entrepreneur summary: gets the projectId of the project associated with the entrepreneur
@ -844,6 +884,8 @@ paths:
$ref: '#/components/schemas/project' $ref: '#/components/schemas/project'
'401': '401':
description: Unauthorized or identity not found description: Unauthorized or identity not found
'403':
description: Bad Token - Invalid Keycloack configuration.
'404': '404':
description: Bad Request - Invalid input or ID mismatch. description: Bad Request - Invalid input or ID mismatch.
/entrepreneur/projects/request: /entrepreneur/projects/request:
@ -873,6 +915,8 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing name).' description: 'Bad Request - Invalid input (e.g., missing name).'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
/entrepreneur/sectionCells: /entrepreneur/sectionCells:
post: post:
operationId: addSectionCell operationId: addSectionCell
@ -897,6 +941,8 @@ paths:
description: 'Bad Request - Invalid input (e.g., missing content or sectionId).' description: 'Bad Request - Invalid input (e.g., missing content or sectionId).'
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'/entrepreneur/sectionCells/{sectionCellId}': '/entrepreneur/sectionCells/{sectionCellId}':
put: put:
operationId: modifySectionCell operationId: modifySectionCell
@ -927,6 +973,8 @@ paths:
description: OK - Section cell updated successfully. Returns the updated cell. description: OK - Section cell updated successfully. Returns the updated cell.
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'404': '404':
description: Bad Request - Invalid input or ID mismatch. description: Bad Request - Invalid input or ID mismatch.
delete: delete:
@ -953,5 +1001,7 @@ paths:
description: Bad Request - Invalid ID format. description: Bad Request - Invalid ID format.
'401': '401':
description: Unauthorized. description: Unauthorized.
'403':
description: Bad Token - Invalid Keycloack configuration.
'404': '404':
description: Bad Request - sectionCell not found. description: Bad Request - sectionCell not found.

View File

@ -27,6 +27,8 @@ paths:
description: Bad Request - Invalid input (e.g., missing name). description: Bad Request - Invalid input (e.g., missing name).
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/entrepreneur/sectionCells: # Base path /entrepreneur/sectionCells: # Base path
post: post:
@ -52,6 +54,8 @@ paths:
description: Bad Request - Invalid input (e.g., missing content or sectionId). description: Bad Request - Invalid input (e.g., missing content or sectionId).
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/entrepreneur/sectionCells/{sectionCellId}: /entrepreneur/sectionCells/{sectionCellId}:
put: put:
@ -84,6 +88,8 @@ paths:
description: Bad Request - Invalid input or ID mismatch. description: Bad Request - Invalid input or ID mismatch.
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
delete: delete:
operationId: removeSectionCell operationId: removeSectionCell
@ -110,6 +116,8 @@ paths:
description: Bad Request - sectionCell not found. description: Bad Request - sectionCell not found.
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/entrepreneur/projects: /entrepreneur/projects:
@ -134,3 +142,5 @@ paths:
description: Bad Request - Invalid input or ID mismatch. description: Bad Request - Invalid input or ID mismatch.
"401": "401":
description: Unauthorized or identity not found description: Unauthorized or identity not found
"403":
description: Bad Token - Invalid Keycloack configuration.

View File

@ -37,6 +37,8 @@ paths:
$ref: "./main.yaml#/components/schemas/sectionCell" $ref: "./main.yaml#/components/schemas/sectionCell"
"400": "400":
description: Bad Request - Invalid parameter format. description: Bad Request - Invalid parameter format.
"403":
description: Bad Token - Invalid Keycloack configuration.
"401": "401":
description: Unauthorized. description: Unauthorized.
@ -68,7 +70,7 @@ paths:
"401": "401":
description: Unauthorized. description: Unauthorized.
"403": "403":
description: Forbidden - User does not have access to this project. description: Forbidden - User does not have access to this project or invalid Keycloack configuration.
"404": "404":
description: Not Found - Project not found. description: Not Found - Project not found.
@ -97,7 +99,7 @@ paths:
"401": "401":
description: Unauthorized. description: Unauthorized.
"403": "403":
description: Forbidden - User does not have access to this project. description: Forbidden - User does not have access to this project or invalid Keycloack configuration.
"404": "404":
description: Not Found - Project not found. description: Not Found - Project not found.
@ -126,6 +128,8 @@ paths:
type: array type: array
items: items:
$ref: "./main.yaml#/components/schemas/appointment" $ref: "./main.yaml#/components/schemas/appointment"
"403":
description: Bad Token - Invalid Keycloack configuration.
"401": "401":
description: Unauthorized. description: Unauthorized.
@ -156,6 +160,8 @@ paths:
format: binary format: binary
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/shared/appointments/request: /shared/appointments/request:
@ -180,7 +186,8 @@ paths:
description: Accepted - Appointment request submitted. description: Accepted - Appointment request submitted.
"400": "400":
description: Bad Request - Invalid appointment details. description: Bad Request - Invalid appointment details.
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.

View File

@ -24,6 +24,8 @@ paths:
description: Bad Request - Problem processing the token or user data derived from it. description: Bad Request - Problem processing the token or user data derived from it.
"401": "401":
description: Unauthorized - Valid authentication token required. description: Unauthorized - Valid authentication token required.
"403":
description: Bad Token - Invalid Keycloack configuration.
/unauth/request-join/{projectId}: /unauth/request-join/{projectId}:
post: post:
summary: Request to join an existing project summary: Request to join an existing project
@ -47,6 +49,8 @@ paths:
description: Already member/request pending. description: Already member/request pending.
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.
/unauth/request-admin-role: /unauth/request-admin-role:
post: post:
summary: Request to join an existing project summary: Request to join an existing project
@ -60,3 +64,5 @@ paths:
description: Bad Request - Invalid project ID format or already member/request pending. description: Bad Request - Invalid project ID format or already member/request pending.
"401": "401":
description: Unauthorized. description: Unauthorized.
"403":
description: Bad Token - Invalid Keycloack configuration.

View File

@ -58,7 +58,7 @@ const USERID = ref("");
<tr> <tr>
<td>Get Pending Accounts</td> <td>Get Pending Accounts</td>
<td> <td>
<button @click="callApi('admin/get_pending_accounts')"> <button @click="callApi('/admin/pending-accounts')">
call call
</button> </button>
</td> </td>

2638
keycloak/realm.json Normal file

File diff suppressed because it is too large Load Diff