package org.wildfly.iiop.openjdk.csiv2;
import org.jboss.security.RunAs;
import org.jboss.security.SecurityContextAssociation;
import org.wildfly.security.manager.WildFlySecurityManager;
import java.security.AccessController;
import java.security.Principal;
import java.security.PrivilegedAction;
/**
* @author Stuart Douglas
*/
class SecurityActions {
private static final PrivilegedAction<Principal> GET_PRINCIPLE_ACTION = new PrivilegedAction<Principal>() {
@Override
public Principal run() {
return SecurityContextAssociation.getPrincipal();
}
};
private static final PrivilegedAction<Object> GET_CREDENTIAL_ACTION = new PrivilegedAction<Object>() {
@Override
public Object run() {
return SecurityContextAssociation.getCredential();
}
};
private static final PrivilegedAction<RunAs> PEEK_RUN_AS_IDENTITY_ACTION = new PrivilegedAction<RunAs>() {
@Override
public RunAs run() {
return SecurityContextAssociation.peekRunAsIdentity();
}
};
static Principal getPrincipal() {
if(WildFlySecurityManager.isChecking()) {
return AccessController.doPrivileged(GET_PRINCIPLE_ACTION);
} else {
return SecurityContextAssociation.getPrincipal();
}
}
static Object getCredential() {
if(WildFlySecurityManager.isChecking()) {
return AccessController.doPrivileged(GET_CREDENTIAL_ACTION);
} else {
return SecurityContextAssociation.getCredential();
}
}
static RunAs peekRunAsIdentity() {
if(WildFlySecurityManager.isChecking()) {
return AccessController.doPrivileged(PEEK_RUN_AS_IDENTITY_ACTION);
} else {
return SecurityContextAssociation.peekRunAsIdentity();
}
}
}