Skip to content

Commit

Permalink
Merge pull request #8634 from stuartwdouglas/security-upgrade
Browse files Browse the repository at this point in the history
Quarkus Security 1.1.0.Final
  • Loading branch information
gsmet authored Apr 17, 2020
2 parents f52920f + cc63bd5 commit e720e56
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 26 deletions.
2 changes: 1 addition & 1 deletion bom/runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@
<mockito.version>3.3.3</mockito.version>
<jna.version>5.3.1</jna.version>
<antlr.version>4.7.2</antlr.version>
<quarkus-security.version>1.1.0.Beta1</quarkus-security.version>
<quarkus-security.version>1.1.0.Final</quarkus-security.version>
<keycloak.version>9.0.2</keycloak.version>
<logstash-gelf.version>1.14.0</logstash-gelf.version>
<jsch.version>0.1.55</jsch.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.Executor;
import java.util.function.Consumer;

import javax.enterprise.inject.Instance;
import javax.enterprise.inject.spi.CDI;
Expand All @@ -21,11 +20,9 @@
import io.quarkus.arc.ManagedContext;
import io.quarkus.arc.runtime.BeanContainer;
import io.quarkus.security.identity.CurrentIdentityAssociation;
import io.quarkus.security.identity.SecurityIdentity;
import io.quarkus.vertx.http.runtime.CurrentVertxRequest;
import io.quarkus.vertx.http.runtime.VertxInputStream;
import io.quarkus.vertx.http.runtime.security.QuarkusHttpUser;
import io.smallrye.mutiny.Uni;
import io.vertx.core.Context;
import io.vertx.core.Handler;
import io.vertx.core.Vertx;
Expand Down Expand Up @@ -101,7 +98,7 @@ private void dispatch(RoutingContext routingContext, InputStream is, VertxOutput
routingContext.remove(QuarkusHttpUser.AUTH_FAILURE_HANDLER);
QuarkusHttpUser user = (QuarkusHttpUser) routingContext.user();
if (association != null) {
((Consumer<Uni<SecurityIdentity>>) association).accept(QuarkusHttpUser.getSecurityIdentity(routingContext, null));
association.setIdentity(QuarkusHttpUser.getSecurityIdentity(routingContext, null));
}
currentVertxRequest.setCurrent(routingContext);
try {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package io.quarkus.security.runtime;

import java.security.Principal;
import java.util.function.Consumer;

import javax.enterprise.context.RequestScoped;
import javax.enterprise.event.Observes;
Expand All @@ -15,7 +14,7 @@
import io.smallrye.mutiny.Uni;

@RequestScoped
public class SecurityIdentityAssociation implements CurrentIdentityAssociation, Consumer<Uni<SecurityIdentity>> {
public class SecurityIdentityAssociation implements CurrentIdentityAssociation {

private volatile SecurityIdentity identity;
private volatile Uni<SecurityIdentity> deferredIdentity;
Expand All @@ -37,18 +36,19 @@ public String getName() {
}

@Override
public SecurityIdentity setIdentity(@Observes SecurityIdentity identity) {
SecurityIdentity old = this.identity;
public void setIdentity(@Observes SecurityIdentity identity) {
this.identity = identity;
return old;
this.deferredIdentity = null;
}

public Uni<SecurityIdentity> getDeferredIdentity() {
return deferredIdentity;
@Override
public void setIdentity(Uni<SecurityIdentity> identity) {
this.identity = null;
this.deferredIdentity = identity;
}

public void setDeferredIdentity(Uni<SecurityIdentity> deferredIdentity) {
this.deferredIdentity = deferredIdentity;
public Uni<SecurityIdentity> getDeferredIdentity() {
return deferredIdentity;
}

@Override
Expand All @@ -63,11 +63,4 @@ public SecurityIdentity getIdentity() {
}
return identity;
}

//THIS IS A TEMP HACK
//a setDeferredIdentity and corresponding getter method needs to be added to the interface
@Override
public void accept(Uni<SecurityIdentity> securityIdentityUni) {
deferredIdentity = securityIdentityUni;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ExecutorService;
import java.util.function.Consumer;
import java.util.function.Supplier;

import javax.enterprise.inject.Instance;
Expand Down Expand Up @@ -47,11 +46,9 @@
import io.quarkus.security.ForbiddenException;
import io.quarkus.security.UnauthorizedException;
import io.quarkus.security.identity.CurrentIdentityAssociation;
import io.quarkus.security.identity.SecurityIdentity;
import io.quarkus.vertx.http.runtime.CurrentVertxRequest;
import io.quarkus.vertx.http.runtime.HttpConfiguration;
import io.quarkus.vertx.http.runtime.security.QuarkusHttpUser;
import io.smallrye.mutiny.Uni;
import io.undertow.httpcore.BufferAllocator;
import io.undertow.httpcore.StatusCodes;
import io.undertow.security.api.AuthenticationMode;
Expand Down Expand Up @@ -559,8 +556,8 @@ public T call(HttpServerExchange exchange, C context) throws Exception {
currentVertxRequest.setCurrent(rc);

if (association != null) {
((Consumer<Uni<SecurityIdentity>>) association)
.accept(QuarkusHttpUser.getSecurityIdentity(rc, null));
association
.setIdentity(QuarkusHttpUser.getSecurityIdentity(rc, null));
}

return action.call(exchange, context);
Expand Down

0 comments on commit e720e56

Please sign in to comment.