feat: add SecurityContext class

This commit is contained in:
2024-08-15 11:44:54 +02:00
parent 7f80c876d3
commit bd386d1b0a
19 changed files with 181 additions and 224 deletions

View File

@@ -6,9 +6,8 @@ import fr.titionfire.ffsaf.rest.exception.DInternalError;
import fr.titionfire.ffsaf.rest.from.ClubMemberForm;
import fr.titionfire.ffsaf.rest.from.FullMemberForm;
import fr.titionfire.ffsaf.utils.PageResult;
import fr.titionfire.ffsaf.utils.SecurityCtx;
import fr.titionfire.ffsaf.utils.Utils;
import io.quarkus.oidc.IdToken;
import io.quarkus.security.identity.SecurityIdentity;
import io.smallrye.mutiny.Uni;
import io.smallrye.mutiny.unchecked.Unchecked;
import jakarta.annotation.security.RolesAllowed;
@@ -16,7 +15,6 @@ import jakarta.inject.Inject;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.eclipse.microprofile.jwt.JsonWebToken;
import org.eclipse.microprofile.openapi.annotations.Operation;
import org.eclipse.microprofile.openapi.annotations.parameters.Parameter;
import org.eclipse.microprofile.openapi.annotations.responses.APIResponse;
@@ -35,10 +33,7 @@ public class MembreClubEndpoints {
String media;
@Inject
JsonWebToken idToken;
@Inject
SecurityIdentity securityIdentity;
SecurityCtx securityCtx;
@GET
@Path("/find/club")
@@ -57,7 +52,7 @@ public class MembreClubEndpoints {
limit = 50;
if (page == null || page < 1)
page = 1;
return membreService.search(limit, page - 1, search, idToken.getSubject());
return membreService.search(limit, page - 1, search, securityCtx.getSubject());
}
@PUT
@@ -74,7 +69,7 @@ public class MembreClubEndpoints {
})
public Uni<String> setMembre(
@Parameter(description = "Identifiant de membre") @PathParam("id") long id, ClubMemberForm input) {
return membreService.update(id, input, idToken, securityIdentity)
return membreService.update(id, input, securityCtx)
.invoke(Unchecked.consumer(out -> {
if (!out.equals("OK")) throw new InternalError("Fail to update data: " + out);
})).chain(() -> {
@@ -101,7 +96,7 @@ public class MembreClubEndpoints {
@APIResponse(responseCode = "500", description = "Erreur interne du serveur")
})
public Uni<Long> addMembre(FullMemberForm input) {
return membreService.add(input, idToken.getSubject())
return membreService.add(input, securityCtx.getSubject())
.invoke(Unchecked.consumer(id -> {
if (id == null) throw new InternalError("Fail to creat member data");
})).call(id -> {
@@ -126,6 +121,6 @@ public class MembreClubEndpoints {
})
public Uni<String> deleteMembre(
@Parameter(description = "Identifiant de membre") @PathParam("id") long id) {
return membreService.delete(id, idToken);
return membreService.delete(id, securityCtx);
}
}