Skip to content

Commit

Permalink
Take @testsecurity(authorizationEnabled = false) into account for RES…
Browse files Browse the repository at this point in the history
…TEasy Reactive

Relates to: quarkusio#19834
  • Loading branch information
geoand committed Sep 2, 2021
1 parent 006d2ec commit 07f9e87
Showing 1 changed file with 26 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,47 @@

import java.lang.reflect.Method;

import io.quarkus.arc.Arc;
import io.quarkus.arc.ArcContainer;
import io.quarkus.arc.InstanceHandle;
import io.quarkus.security.UnauthorizedException;
import io.quarkus.security.identity.SecurityIdentity;
import io.quarkus.security.spi.runtime.AuthorizationController;
import io.quarkus.security.spi.runtime.SecurityCheck;

public class AuthenticatedCheck implements SecurityCheck {

public static final AuthenticatedCheck INSTANCE = new AuthenticatedCheck();

private volatile AuthorizationController authorizationController;

private AuthenticatedCheck() {
}

@Override
public void apply(SecurityIdentity identity, Method method, Object[] parameters) {
if (isAuthorizationDisabled()) {
return;
}
if (identity.isAnonymous()) {
throw new UnauthorizedException();
}
}

private boolean isAuthorizationDisabled() {
if (authorizationController != null) {
return !authorizationController.isAuthorizationEnabled();
}

ArcContainer container = Arc.container();
if ((container == null) || !container.isRunning()) {
return false;
}
InstanceHandle<AuthorizationController> instance = container.instance(AuthorizationController.class);
if (instance.isAvailable()) {
authorizationController = instance.get();
return !instance.get().isAuthorizationEnabled();
}
return false;
}
}

0 comments on commit 07f9e87

Please sign in to comment.