@@ -296,14 +296,14 @@ Internally, the identity providers create and update an istance of the `io.quark
296296
297297[source,java]
298298----
299- import java.util.concurrent.CompletableFuture;
300- import java.util.concurrent.CompletionStage;
301- import javax.enterprise.context.ApplicationScoped;
302-
303299import io.quarkus.security.identity.AuthenticationRequestContext;
304300import io.quarkus.security.identity.SecurityIdentity;
305301import io.quarkus.security.identity.SecurityIdentityAugmentor;
306302import io.quarkus.security.runtime.QuarkusSecurityIdentity;
303+ import io.smallrye.mutiny.Uni;
304+
305+ import javax.enterprise.context.ApplicationScoped;
306+ import java.util.function.Supplier;
307307
308308@ApplicationScoped
309309public class RolesAugmentor implements SecurityIdentityAugmentor {
@@ -314,26 +314,25 @@ public class RolesAugmentor implements SecurityIdentityAugmentor {
314314 }
315315
316316 @Override
317- public CompletionStage<SecurityIdentity> augment(SecurityIdentity identity, AuthenticationRequestContext context) {
317+ public Uni<SecurityIdentity> augment(SecurityIdentity identity, AuthenticationRequestContext context) {
318+ return context.runBlocking(build(identity));
319+ }
318320
319- CompletableFuture <SecurityIdentity> cs = new CompletableFuture<>();
320- if (identity.isAnonymous()) {
321- cs.complete(identity) ;
321+ private Supplier <SecurityIdentity> build(SecurityIdentity identity) {
322+ if(identity.isAnonymous()) {
323+ return () -> identity ;
322324 } else {
323325 // create a new builder and copy principal, attributes, credentials and roles from the original
324326 QuarkusSecurityIdentity.Builder builder = QuarkusSecurityIdentity.builder()
325- .setPrincipal(identity.getPrincipal())
326- .addAttributes(identity.getAttributes())
327- .addCredentials(identity.getCredentials())
328- .addRoles(identity.getRoles());
327+ .setPrincipal(identity.getPrincipal())
328+ .addAttributes(identity.getAttributes())
329+ .addCredentials(identity.getCredentials())
330+ .addRoles(identity.getRoles());
329331
330332 // add custom role source here
331333 builder.addRole("dummy");
332-
333- cs.complete(builder.build());
334+ return builder::build;
334335 }
335-
336- return cs;
337336 }
338337}
339338----
0 commit comments