Skip to content

Commit

Permalink
chore: make user id claim property optional
Browse files Browse the repository at this point in the history
  • Loading branch information
brunopacheco1 committed Aug 22, 2024
1 parent 7af7e69 commit 5e947e3
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
import org.eclipse.microprofile.config.inject.ConfigProperty;

import java.util.List;
import java.util.Optional;

import static io.github.genomicdatainfrastructure.daam.api.ApplicationQueryApiImpl.DEFAULT_USER_ID_CLAIM;

public class ApplicationCommandApiImpl implements ApplicationCommandApi {

Expand All @@ -20,7 +23,7 @@ public class ApplicationCommandApiImpl implements ApplicationCommandApi {
private final SubmitApplicationService submitApplicationService;
private final AttachFileToApplicationService attachFileToApplicationService;
private final AcceptTermsService acceptTermsService;
private final String userIdClaim;
private final Optional<String> userIdClaim;

public ApplicationCommandApiImpl(
SecurityIdentity identity,
Expand All @@ -29,7 +32,7 @@ public ApplicationCommandApiImpl(
SubmitApplicationService submitApplicationService,
AttachFileToApplicationService attachFileToApplicationService,
AcceptTermsService acceptTermsService,
@ConfigProperty(name = "quarkus.rest-client.rems_yaml.user-id-claim", defaultValue = "elixir_id") String userIdClaim
@ConfigProperty(name = "quarkus.rest-client.rems_yaml.user-id-claim") Optional<String> userIdClaim
) {
this.identity = identity;
this.saveApplicationService = saveApplicationService;
Expand Down Expand Up @@ -126,6 +129,6 @@ public Response acceptApplicationTermsV1(Long id, AcceptTermsCommand acceptTerms

private String userId() {
var principal = (OidcJwtCallerPrincipal) identity.getPrincipal();
return principal.getClaim(userIdClaim);
return principal.getClaim(userIdClaim.orElse(DEFAULT_USER_ID_CLAIM));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,22 @@
import org.jboss.resteasy.reactive.multipart.FileUpload;

import java.util.List;
import java.util.Optional;

public class ApplicationQueryApiImpl implements ApplicationQueryApi {

public static final String DEFAULT_USER_ID_CLAIM = "elixir_id";

private final SecurityIdentity identity;
private final ListApplicationsService listApplicationsService;
private final RetrieveApplicationService retrieveApplicationService;
private final String userIdClaim;
private final Optional<String> userIdClaim;

public ApplicationQueryApiImpl(
SecurityIdentity identity,
ListApplicationsService listApplicationsService,
RetrieveApplicationService retrieveApplicationService,
@ConfigProperty(name = "quarkus.rest-client.rems_yaml.user-id-claim", defaultValue = "elixir_id") String userIdClaim
@ConfigProperty(name = "quarkus.rest-client.rems_yaml.user-id-claim") Optional<String> userIdClaim
) {
this.identity = identity;
this.listApplicationsService = listApplicationsService;
Expand All @@ -53,6 +56,6 @@ public FileUpload retrieveAttachmentFromApplicationV1(Long id, Long attachmentId

private String userId() {
var principal = (OidcJwtCallerPrincipal) identity.getPrincipal();
return principal.getClaim(userIdClaim);
return principal.getClaim(userIdClaim.orElse(DEFAULT_USER_ID_CLAIM));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,20 @@
import io.quarkus.security.identity.SecurityIdentity;
import org.eclipse.microprofile.config.inject.ConfigProperty;

import java.util.Optional;

import static io.github.genomicdatainfrastructure.daam.api.ApplicationQueryApiImpl.DEFAULT_USER_ID_CLAIM;

public class EntitlementQueryApiImpl implements EntitlementQueryApi {

private final SecurityIdentity identity;
private final RetrieveGrantedDatasetIdentifiersService retrieveGrantedDatasetIdentifiersService;
private final String userIdClaim;
private final Optional<String> userIdClaim;

public EntitlementQueryApiImpl(
SecurityIdentity identity,
RetrieveGrantedDatasetIdentifiersService retrieveGrantedDatasetIdentifiersService,
@ConfigProperty(name = "quarkus.rest-client.rems_yaml.user-id-claim", defaultValue = "elixir_id") String userIdClaim
@ConfigProperty(name = "quarkus.rest-client.rems_yaml.user-id-claim") Optional<String> userIdClaim
) {
this.identity = identity;
this.retrieveGrantedDatasetIdentifiersService = retrieveGrantedDatasetIdentifiersService;
Expand All @@ -33,6 +37,6 @@ public RetrieveGrantedDatasetIdentifiers retrieveGrantedDatasetIdentifiers() {

private String userId() {
var principal = (OidcJwtCallerPrincipal) identity.getPrincipal();
return principal.getClaim(userIdClaim);
return principal.getClaim(userIdClaim.orElse(DEFAULT_USER_ID_CLAIM));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
import jakarta.ws.rs.ext.Provider;
import org.eclipse.microprofile.config.inject.ConfigProperty;

import java.util.Optional;

import static io.github.genomicdatainfrastructure.daam.api.ApplicationQueryApiImpl.DEFAULT_USER_ID_CLAIM;

@Provider
@Priority(Priorities.AUTHENTICATION)
public class PostAuthenticationFilter implements ContainerRequestFilter {
Expand All @@ -23,13 +27,13 @@ public class PostAuthenticationFilter implements ContainerRequestFilter {

private final SecurityIdentity identity;
private final CreateRemsUserService createRemsUserService;
private final String userIdClaim;
private final Optional<String> userIdClaim;

@Inject
public PostAuthenticationFilter(
SecurityIdentity identity,
CreateRemsUserService createRemsUserService,
@ConfigProperty(name = "quarkus.rest-client.rems_yaml.user-id-claim", defaultValue = "elixir_id") String userIdClaim
@ConfigProperty(name = "quarkus.rest-client.rems_yaml.user-id-claim") Optional<String> userIdClaim
) {
this.identity = identity;
this.createRemsUserService = createRemsUserService;
Expand All @@ -42,7 +46,7 @@ public void filter(ContainerRequestContext requestContext) {
var oidcPrincipal = (OidcJwtCallerPrincipal) identity.getPrincipal();

createRemsUserService.createRemsUser(
oidcPrincipal.getClaim(userIdClaim),
oidcPrincipal.getClaim(userIdClaim.orElse(DEFAULT_USER_ID_CLAIM)),
oidcPrincipal.getClaim(USER_NAME_CLAIM),
oidcPrincipal.getClaim(EMAIL_CLAIM)
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static java.util.Optional.of;
import static org.mockito.Mockito.*;

@QuarkusTest
Expand All @@ -28,7 +29,8 @@ class PostAuthenticationFilterTest {

@BeforeEach
void setUp() {
underTest = new PostAuthenticationFilter(securityIdentity, createRemsUserService, "sub");
underTest = new PostAuthenticationFilter(securityIdentity, createRemsUserService, of(
"sub"));
}

@Test
Expand Down

0 comments on commit 5e947e3

Please sign in to comment.