public class org.glassfish.security.services.common.SecurityAccessValidator extends java.lang.Object implements org.glassfish.hk.api.Validator
{
private static final java.util.logging.Logger LOG;
private static com.sun.enterprise.util.LocalStringManagerImpl localStrings;
public void <init>()
{
org.glassfish.security.services.common.SecurityAccessValidator v;
v := @this: org.glassfish.security.services.common.SecurityAccessValidator;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public boolean validate(org.glassfish.hk.api.ValidationInformation)
{
java.util.logging.Logger v, v;
org.glassfish.hk.api.Operation v;
org.glassfish.hk.api.Injectee v;
java.util.logging.Level v;
org.glassfish.hk.api.ActiveDescriptor v;
int[] v;
org.glassfish.hk.api.ValidationInformation v;
org.glassfish.security.services.common.SecurityAccessValidator v;
int v, v;
java.lang.String v;
boolean v, v, v;
v := @this: org.glassfish.security.services.common.SecurityAccessValidator;
v := @parameter: org.glassfish.hk.api.ValidationInformation;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ValidationInformation)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("ValidationInformation info= \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = <org.glassfish.security.services.common.SecurityAccessValidator$2: int[] $SwitchMap$org$glassfish$hk2$api$Operation>;
v = interfaceinvoke v.<org.glassfish.hk.api.ValidationInformation: org.glassfish.hk.api.Operation getOperation()>();
v = virtualinvoke v.<org.glassfish.hk.api.Operation: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: boolean validateBindAndUnbind(org.glassfish.hk.api.ValidationInformation)>(v);
return v;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ValidationInformation: org.glassfish.hk.api.ActiveDescriptor getCandidate()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ValidationInformation: org.glassfish.hk.api.Injectee getInjectee()>();
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: boolean validateLookup(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, v);
return v;
label:
return 0;
}
private boolean isSecureAnnotated(org.glassfish.hk.api.ValidationInformation)
{
java.util.logging.Level v;
org.glassfish.hk.api.ActiveDescriptor v;
org.glassfish.hk.api.ValidationInformation v;
int v;
java.lang.String v, v;
boolean v, v, v;
java.util.Iterator v;
java.util.Set v;
java.util.logging.Logger v, v;
org.glassfish.security.services.common.SecurityAccessValidator v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.glassfish.security.services.common.SecurityAccessValidator;
v := @parameter: org.glassfish.hk.api.ValidationInformation;
v = interfaceinvoke v.<org.glassfish.hk.api.ValidationInformation: org.glassfish.hk.api.ActiveDescriptor getCandidate()>();
v = interfaceinvoke v.<org.glassfish.hk.api.Descriptor: java.util.Set getQualifiers()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.Set: int size()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = class "Lorg/glassfish/security/services/common/Secure;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ValidationInformation)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The instance is annotated with \'Secure\': \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
return 1;
label:
return 0;
}
private boolean validateBindAndUnbind(org.glassfish.hk.api.ValidationInformation)
{
java.util.logging.Logger v, v;
org.glassfish.hk.api.Injectee v, v;
java.util.logging.Level v;
org.glassfish.hk.api.ActiveDescriptor v;
org.glassfish.hk.api.ValidationInformation v;
org.glassfish.security.services.common.SecurityAccessValidator v;
java.lang.String v;
boolean v, v, v;
v := @this: org.glassfish.security.services.common.SecurityAccessValidator;
v := @parameter: org.glassfish.hk.api.ValidationInformation;
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: boolean isSecureAnnotated(org.glassfish.hk.api.ValidationInformation)>(v);
if v != 0 goto label;
return 1;
label:
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = interfaceinvoke v.<org.glassfish.hk.api.ValidationInformation: org.glassfish.hk.api.Injectee getInjectee()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.Injectee)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("validateBindAndUnbind, injectee= \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ValidationInformation: org.glassfish.hk.api.ActiveDescriptor getCandidate()>();
v = interfaceinvoke v.<org.glassfish.hk.api.ValidationInformation: org.glassfish.hk.api.Injectee getInjectee()>();
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: boolean validateLookup(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, v);
return v;
}
private boolean validateLookup(org.glassfish.hk.api.ActiveDescriptor, org.glassfish.hk.api.Injectee)
{
org.glassfish.hk.api.ActiveDescriptor v;
java.util.Map v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Set v, v;
java.util.logging.Logger v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.security.Permission v;
org.glassfish.security.services.common.SecurityAccessValidator v;
java.util.logging.Level v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v;
java.util.Iterator v, v;
org.glassfish.hk.api.Injectee v;
java.lang.Class v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.glassfish.security.services.common.SecurityAccessValidator;
v := @parameter: org.glassfish.hk.api.ActiveDescriptor;
v := @parameter: org.glassfish.hk.api.Injectee;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Lookup candiate =\u, injectee= \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: boolean isReified()>();
if v != 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>("Lookup candiate is not reified yet");
label:
return 1;
label:
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.ActiveDescriptor)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Lookup candiate is reified, candidate = \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.util.Set getAdvertisedContracts()>();
if v != null goto label;
return 1;
label:
v = interfaceinvoke v.<org.glassfish.hk.api.ActiveDescriptor: java.util.Map getMetadata()>();
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("$$ key= \u, value= \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
goto label;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("accessPermissionName");
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
label:
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>("Perm name is empty, will use default value");
label:
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: java.security.Permission getAccessPermision(java.lang.String,java.lang.String)>("security/service/default", null);
goto label;
label:
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: java.security.Permission getAccessPermision(java.lang.String,java.lang.String)>(v, null);
label:
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.security.Permission)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The permission to be protected = \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
if v != null goto label;
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: java.lang.Class getServiceLookupCaller()>();
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: boolean checkPerm(java.security.Permission,java.lang.Class)>(v, v);
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.security.Permission,boolean)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Lookup, checked perm for = \u, result= \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
goto label;
label:
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: boolean validateInjection(org.glassfish.hk.api.ActiveDescriptor,org.glassfish.hk.api.Injectee,java.security.Permission)>(v, v, v);
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.security.Permission,boolean)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Injection, checked perm for = \u, result= \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
return v;
}
private java.lang.Class getServiceLookupCaller()
{
org.glassfish.security.services.common.SecurityAccessValidator v;
v := @this: org.glassfish.security.services.common.SecurityAccessValidator;
return null;
}
private boolean checkPerm(java.security.Permission, java.lang.Class)
{
java.lang.Object[] v;
java.util.logging.Level v, v;
com.sun.enterprise.util.LocalStringManagerImpl v;
java.lang.SecurityException v;
java.lang.String v, v, v, v;
boolean v, v;
java.util.logging.Logger v, v, v, v, v;
java.security.Permission v;
org.glassfish.security.services.common.SecurityAccessValidator v;
java.security.ProtectionDomain v;
java.lang.Class v;
v := @this: org.glassfish.security.services.common.SecurityAccessValidator;
v := @parameter: java.security.Permission;
v := @parameter: java.lang.Class;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.security.Permission)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Checked perm for = \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
if v == null goto label;
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: java.security.ProtectionDomain getCallerProtDomain(java.lang.Class)>(v);
virtualinvoke v.<java.security.ProtectionDomain: boolean implies(java.security.Permission)>(v);
goto label;
label:
staticinvoke <java.security.AccessController: void checkPermission(java.security.Permission)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <org.glassfish.security.services.common.SecurityAccessValidator: com.sun.enterprise.util.LocalStringManagerImpl localStrings>;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = virtualinvoke v.<com.sun.enterprise.util.LocalStringManagerImpl: java.lang.String getLocalString(java.lang.String,java.lang.String,java.lang.Object[])>("sec.validate.lookup.deny", "Check Permission failed in lookup for permission = {0}", v);
virtualinvoke v.<java.util.logging.Logger: void warning(java.lang.String)>(v);
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = virtualinvoke v.<java.lang.SecurityException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.security.Permission,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Check Permission failed, perm= \u, message = \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
throw v;
label:
return 1;
catch java.lang.SecurityException from label to label with label;
}
private boolean validateInjection(org.glassfish.hk.api.ActiveDescriptor, org.glassfish.hk.api.Injectee, java.security.Permission)
{
org.glassfish.hk.api.ActiveDescriptor v;
boolean v, v, v, v, v;
java.util.logging.Logger v, v, v, v, v, v, v, v;
java.security.Permission v;
org.glassfish.security.services.common.SecurityAccessValidator v;
java.security.AccessControlException v;
java.lang.Object[] v;
java.util.logging.Level v, v, v, v;
com.sun.enterprise.util.LocalStringManagerImpl v;
java.lang.String v, v, v, v, v;
org.glassfish.hk.api.Injectee v;
java.security.ProtectionDomain v;
java.lang.Class v;
java.security.CodeSource v;
v := @this: org.glassfish.security.services.common.SecurityAccessValidator;
v := @parameter: org.glassfish.hk.api.ActiveDescriptor;
v := @parameter: org.glassfish.hk.api.Injectee;
v := @parameter: java.security.Permission;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.Injectee,java.security.Permission)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Injectee =\u, permission= \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = interfaceinvoke v.<org.glassfish.hk.api.Injectee: java.lang.Class getInjecteeClass()>();
v = specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator: java.security.ProtectionDomain getCallerProtDomain(java.lang.Class)>(v);
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = virtualinvoke v.<java.security.ProtectionDomain: java.security.CodeSource getCodeSource()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.security.CodeSource)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Protection domain code src= \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = virtualinvoke v.<java.security.ProtectionDomain: boolean implies(java.security.Permission)>(v);
if v != 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.Injectee,java.security.Permission,org.glassfish.hk.api.ActiveDescriptor)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("permission check failed for \u, to get perm \u, for candidate \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
v = new java.security.AccessControlException;
v = <org.glassfish.security.services.common.SecurityAccessValidator: com.sun.enterprise.util.LocalStringManagerImpl localStrings>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = virtualinvoke v.<com.sun.enterprise.util.LocalStringManagerImpl: java.lang.String getLocalString(java.lang.String,java.lang.String,java.lang.Object[])>("sec.validate.injection.deny", "Access denied for injectee {0} to get permission {1}.", v);
specialinvoke v.<java.security.AccessControlException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.glassfish.hk.api.Injectee,org.glassfish.hk.api.ActiveDescriptor)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("permission check success for \u to get \u0001");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
label:
return 1;
}
private java.security.ProtectionDomain getCallerProtDomain(java.lang.Class)
{
org.glassfish.security.services.common.SecurityAccessValidator$1 v;
org.glassfish.security.services.common.SecurityAccessValidator v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.glassfish.security.services.common.SecurityAccessValidator;
v := @parameter: java.lang.Class;
v = new org.glassfish.security.services.common.SecurityAccessValidator$1;
specialinvoke v.<org.glassfish.security.services.common.SecurityAccessValidator$1: void <init>(org.glassfish.security.services.common.SecurityAccessValidator,java.lang.Class)>(v, v);
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
return v;
}
private java.security.Permission getAccessPermision(java.lang.String, java.lang.String)
{
org.glassfish.security.services.common.SecurityAccessValidator v;
org.glassfish.security.services.common.SecureServiceAccessPermission v;
java.lang.String v, v;
v := @this: org.glassfish.security.services.common.SecurityAccessValidator;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = new org.glassfish.security.services.common.SecureServiceAccessPermission;
specialinvoke v.<org.glassfish.security.services.common.SecureServiceAccessPermission: void <init>(java.lang.String,java.lang.String)>(v, v);
return v;
}
static void <clinit>()
{
java.util.logging.Logger v;
com.sun.enterprise.util.LocalStringManagerImpl v;
v = <org.glassfish.security.services.common.SecurityAccessValidationService: java.util.logging.Logger _theLog>;
<org.glassfish.security.services.common.SecurityAccessValidator: java.util.logging.Logger LOG> = v;
v = new com.sun.enterprise.util.LocalStringManagerImpl;
specialinvoke v.<com.sun.enterprise.util.LocalStringManagerImpl: void <init>(java.lang.Class)>(class "Lorg/glassfish/security/services/common/SecurityAccessValidator;");
<org.glassfish.security.services.common.SecurityAccessValidator: com.sun.enterprise.util.LocalStringManagerImpl localStrings> = v;
return;
}
}