Class OA2State

  • All Implemented Interfaces:
    edu.uiuc.ncsa.security.core.Logable, edu.uiuc.ncsa.security.util.scripting.StateInterface, Serializable, org.qdl_lang.state.QDLConstants

    public class OA2State
    extends org.qdl_lang.state.State

    Created by Jeff Gaynor
    on 10/9/20 at 4:45 PM

    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.qdl_lang.state.VariableState

        org.qdl_lang.state.VariableState.CyclicalError, org.qdl_lang.state.VariableState.ResolveState
      • Nested classes/interfaces inherited from class org.qdl_lang.state.AbstractState

        org.qdl_lang.state.AbstractState.QDLStackTraceElement
    • Field Summary

      • Fields inherited from class org.qdl_lang.state.State

        extrinsicFuncs, extrinsicVars
      • Fields inherited from class org.qdl_lang.state.VariableState

        EXTRINSIC_MARKER, int_regex, typeSafetyMode, var_regex
      • Fields inherited from class org.qdl_lang.state.NamespaceAwareState

        NS_DELIMITER, RESERVED_NAMESPACE
      • Fields inherited from class org.qdl_lang.state.ModuleState

        MTemplates
      • Fields inherited from class org.qdl_lang.state.AbstractState

        INTRINSIC_PREFIX, libPath, scriptArgs
      • Fields inherited from interface org.qdl_lang.state.QDLConstants

        ALL_CHARS, ALPHA_CHARS, ASCII_CHARS, FUNCTION_REFERENCE_MARKER, FUNCTION_REFERENCE_MARKER2, GREEK_CHARS, JSON_QDL_NULL, KEYWORDS, RESERVED_FALSE, RESERVED_NULL, RESERVED_NULL_SET, RESERVED_TRUE, STEM_PATH_MARKER, STEM_PATH_MARKER2, SYS_ASSERT_CODE_SYSTEM_ERROR, SYS_BOOT, SYS_BOOT_BOOT_SCRIPT, SYS_BOOT_CONFIG_FILE, SYS_BOOT_CONFIG_NAME, SYS_BOOT_LOG_FILE, SYS_BOOT_LOG_NAME, SYS_BOOT_QDL_HOME, SYS_BOOT_RESTRICTED_IO_MODE, SYS_BOOT_SERVER_MODE, SYS_CODEC_ALGORITHMS, SYS_CODEC_B16CODE, SYS_CODEC_B32CODE, SYS_CODEC_B64CODE, SYS_CODEC_CSV, SYS_CODEC_ECMA, SYS_CODEC_HTML3, SYS_CODEC_HTML4, SYS_CODEC_JAVA, SYS_CODEC_JSON, SYS_CODEC_QDL_ENCODE, SYS_CODEC_URLCODE, SYS_CODEC_VENCODE, SYS_CODEC_XML_1_0, SYS_CODEC_XML_1_1, SYS_CODEC_XSI, SYS_DETOKENIZE_APPEND, SYS_DETOKENIZE_OMIT_DANGLING_DELIMITER, SYS_DETOKENIZE_PREPEND, SYS_DETOKENIZE_TYPE, SYS_ERROR_CODE_DEFAULT_USER_ERROR, SYS_ERROR_CODE_SYSTEM_ERROR, SYS_ERROR_CODES, SYS_FILE_TYPE_BINARY, SYS_FILE_TYPE_INIT, SYS_FILE_TYPE_NO_LIST_INIT, SYS_FILE_TYPE_STEM, SYS_FILE_TYPE_STRING, SYS_FILE_TYPES, SYS_HASH_ALGORITHMS, SYS_INFO_CLASS_PATH, SYS_INFO_INIT_MEMORY, SYS_INFO_JVM_VERSION, SYS_INFO_OS, SYS_INFO_OS_ARCHITECTURE, SYS_INFO_OS_NAME, SYS_INFO_OS_VERSION, SYS_INFO_QDL_HOME_DIR, SYS_INFO_SYSTEM, SYS_INFO_SYSTEM_PROCESSORS, SYS_INFO_USER, SYS_INFO_USER_HOME_DIR, SYS_INFO_USER_INVOCATION_DIR, SYS_LOG_ERROR, SYS_LOG_INFO, SYS_LOG_LEVELS, SYS_LOG_NONE, SYS_LOG_SEVERE, SYS_LOG_TRACE, SYS_LOG_WARN, SYS_MODULE_IMPORT_MODES, SYS_QDL_BUILD, SYS_QDL_BUILD_CLASS_PATH, SYS_QDL_BUILD_VERSION, SYS_QDL_VERSION, SYS_QDL_VERSION_BUILD_JDK, SYS_QDL_VERSION_BUILD_NUMBER, SYS_QDL_VERSION_BUILD_TIME, SYS_QDL_VERSION_CREATED_BY, SYS_SCRIPTS_PATH, SYS_VAR_TYPE_BOOLEAN, SYS_VAR_TYPE_CHARACTER_MAP, SYS_VAR_TYPE_CHARACTERS, SYS_VAR_TYPE_DECIMAL, SYS_VAR_TYPE_INTEGER, SYS_VAR_TYPE_NULL, SYS_VAR_TYPE_RESERVED, SYS_VAR_TYPE_SET, SYS_VAR_TYPE_STEM, SYS_VAR_TYPE_STRING, SYS_VAR_TYPE_UNDEFINED, SYS_VAR_TYPES, UNICODE_CHARS, URI_AUTHORITY, URI_FIELDS, URI_FRAGMENT, URI_HOST, URI_PATH, URI_PORT, URI_QUERY, URI_SCHEME, URI_SCHEME_SPECIFIC_PART, URI_USER_INFO
    • Constructor Summary

      Constructors 
      Constructor Description
      OA2State​(org.qdl_lang.variables.VStack vStack, org.qdl_lang.evaluate.OpEvaluator opEvaluator, org.qdl_lang.evaluate.MetaEvaluator metaEvaluator, org.qdl_lang.functions.FStack ft, org.qdl_lang.expressions.module.MTStack mTemplates, org.qdl_lang.expressions.module.MIStack mInstance, edu.uiuc.ncsa.security.core.util.MyLoggingFacade myLoggingFacade, boolean isServerMode, boolean isRestrictedIO, boolean assertionsOn, boolean strictACLs, edu.uiuc.ncsa.security.util.jwk.JSONWebKeys keys)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.qdl_lang.variables.QDLStem addManifestConstants​(String path)  
      List<edu.uiuc.ncsa.security.core.Identifier> getAclBlackList()  
      List<edu.uiuc.ncsa.security.core.Identifier> getAclList()  
      List<edu.uiuc.ncsa.security.core.Identifier> getAdminIDs()  
      edu.uiuc.ncsa.security.core.Identifier getClientID()  
      edu.uiuc.ncsa.security.util.jwk.JSONWebKeys getJsonWebKeys()  
      OA2SE getOa2se()  
      javax.servlet.http.HttpServletRequest getRequest()  
      OA2ServiceTransaction getTransaction()  
      TXRecord getTxRecord()  
      boolean isStrictACLs()
      If ACLs are enforced strictly.
      org.qdl_lang.state.State newCleanState()  
      org.qdl_lang.state.State newFunctionState()  
      org.qdl_lang.state.State newInstance​(org.qdl_lang.variables.VStack vStack, org.qdl_lang.evaluate.OpEvaluator opEvaluator, org.qdl_lang.evaluate.MetaEvaluator metaEvaluator, org.qdl_lang.functions.FStack fStack, org.qdl_lang.expressions.module.MTStack mTemplates, org.qdl_lang.expressions.module.MIStack mInstances, edu.uiuc.ncsa.security.core.util.MyLoggingFacade myLoggingFacade, boolean isServerMode, boolean isRestrictedIO, boolean assertionsOn)  
      org.qdl_lang.state.State newLocalState()  
      void readExtraXMLElements​(XMLEvent xe, XMLEventReader xer)  
      void setAclBlackList​(List<edu.uiuc.ncsa.security.core.Identifier> aclBlackList)  
      void setAclList​(List<edu.uiuc.ncsa.security.core.Identifier> aclList)  
      void setJsonWebKeys​(edu.uiuc.ncsa.security.util.jwk.JSONWebKeys jsonWebKeys)  
      void setOa2se​(OA2SE oa2se)  
      void setRequest​(javax.servlet.http.HttpServletRequest request)  
      void setStrictACLs​(boolean strictACLs)  
      void setTransaction​(OA2ServiceTransaction transaction)  
      void setTxRecord​(TXRecord txRecord)  
      void writeExtraXMLElements​(XMLStreamWriter xsw)  
      • Methods inherited from class org.qdl_lang.state.State

        addJSONtoState, addLibEntries, addLibEntry, addModule, addVFSProvider, buildSO, createConstants, createSystemConstants, createSystemInfo, deserializeFromJSON, doLocalSerialization, doXMLImportedModules, fromXML, fromXML, getDebugUtil, getExtrinsicFuncs, getExtrinsicVars, getFactory, getFileFromVFS, getInternalID, getLibMap, getQDLReservedNames, getRootState, getScriptFromVFS, getStackSize, getStateID, getSystemConstants, getSystemInfo, getTargetState, getTempVariableName, getThreadTable, getVFS, getVfsFileProviders, getWorkspaceCommands, hasMountPoint, hasVFSProviders, injectTransientFields, isAllowBaseFunctionOverrides, isAssertionsOn, isRestrictedIO, isServerMode, isVFSFile, main, newInstance, newLocalState, newSelectiveState, newSelectiveState, newSelectiveState, newSelectiveState, processManifest, processManifest2, readConstantsFromJSON, readExtraXMLAttributes, removeScriptProvider, removeVFSProvider, serializeLocalStateToJSON, serializeToJSON, setAllowBaseFunctionOverrides, setAssertionsOn, setDebugUtil, setExtrinsicFuncs, setExtrinsicVars, setFactory, setRestrictedIO, setRootState, setServerMode, setStateID, setStemValue, setSystemConstants, setSystemInfo, setTargetState, setThreadTable, setVfsFileProviders, setWorkspaceCommands, toXML, toXML, writeExtraXMLAttributes
      • Methods inherited from class org.qdl_lang.state.FunctionState

        getAllFunctionsByName, getFTStack, getIntrinsicFunctions, listAllDocumentation, listFunctionDoc, listFunctions, listFunctions, listModuleDoc, putFunction, resolveFunction, resolveFunction, setFTStack, setIntrinsicFunctions
      • Methods inherited from class org.qdl_lang.state.VariableState

        getIntrinsicVariables, getTypeSafetyMode, getValue, getValue, gsrNSScalarOp, gsrNSStemOp, handleVariableType, isDefined, isExtrinsic, isStem, listVariables, remove, resolveStemIndex, resolveStemIndex, setIntrinsicVariables, setTypeSafetyMode, setValue, setValue
      • Methods inherited from class org.qdl_lang.state.NamespaceAwareState

        getAlias, getUNQName
      • Methods inherited from class org.qdl_lang.state.ModuleState

        getImportedModule, getMInstances, getModule, getMTemplates, getUsedModules, hasModule, isImportMode, isModuleState, setImportMode, setMInstances, setModule, setModuleState, setMTemplates, setUsedModules
      • Methods inherited from class org.qdl_lang.state.AbstractState

        debug, error, error, error, getCompletionProvider, getIoInterface, getLibPath, getLibrarySupportMode, getLogger, getMetaEvaluator, getModulePaths, getOperatorType, getOpEvaluator, getScriptArgs, getScriptArgStem, getScriptName, getScriptPaths, getScriptStack, getStateRegistry, getSuperState, getUuid, getVStack, hasCompletionProvider, hasLogging, hasScriptArgs, hasScriptName, hasSuperState, info, isDebugOn, isEnableLibrarySupport, isIntrinsic, isPrintUnicode, pathToList, setCompletionProvider, setDebugOn, setEnableLibrarySupport, setIoInterface, setLibPath, setLibPath, setLibrarySupportMode, setLogger, setMetaEvaluator, setModulePaths, setModulePaths, setOpEvaluator, setPrintUnicode, setScriptArgs, setScriptArgStem, setScriptName, setScriptPaths, setScriptPaths, setScriptStack, setSuperState, setUuid, setvStack, warn
    • Constructor Detail

      • OA2State

        public OA2State​(org.qdl_lang.variables.VStack vStack,
                        org.qdl_lang.evaluate.OpEvaluator opEvaluator,
                        org.qdl_lang.evaluate.MetaEvaluator metaEvaluator,
                        org.qdl_lang.functions.FStack ft,
                        org.qdl_lang.expressions.module.MTStack mTemplates,
                        org.qdl_lang.expressions.module.MIStack mInstance,
                        edu.uiuc.ncsa.security.core.util.MyLoggingFacade myLoggingFacade,
                        boolean isServerMode,
                        boolean isRestrictedIO,
                        boolean assertionsOn,
                        boolean strictACLs,
                        edu.uiuc.ncsa.security.util.jwk.JSONWebKeys keys)
    • Method Detail

      • newLocalState

        public org.qdl_lang.state.State newLocalState()
        Overrides:
        newLocalState in class org.qdl_lang.state.State
      • newFunctionState

        public org.qdl_lang.state.State newFunctionState()
        Overrides:
        newFunctionState in class org.qdl_lang.state.State
      • newCleanState

        public org.qdl_lang.state.State newCleanState()
        Overrides:
        newCleanState in class org.qdl_lang.state.State
      • getJsonWebKeys

        public edu.uiuc.ncsa.security.util.jwk.JSONWebKeys getJsonWebKeys()
      • setJsonWebKeys

        public void setJsonWebKeys​(edu.uiuc.ncsa.security.util.jwk.JSONWebKeys jsonWebKeys)
      • setStrictACLs

        public void setStrictACLs​(boolean strictACLs)
      • isStrictACLs

        public boolean isStrictACLs()
        If ACLs are enforced strictly. Strictly means that no access control list is ok, connoting general access. Strict ACLs means there must be an exact match of one of the identifiers.

        Setting this true in the configuration (with the OA2ConfigurationLoader.STRICT_ACLS attribute of the qdl tag) will lock down the server so that nothing can execute unless everything is granted explicit permission. Use this wisely.
        Returns:
      • getAclList

        public List<edu.uiuc.ncsa.security.core.Identifier> getAclList()
      • setAclList

        public void setAclList​(List<edu.uiuc.ncsa.security.core.Identifier> aclList)
      • getAclBlackList

        public List<edu.uiuc.ncsa.security.core.Identifier> getAclBlackList()
      • setAclBlackList

        public void setAclBlackList​(List<edu.uiuc.ncsa.security.core.Identifier> aclBlackList)
      • getTxRecord

        public TXRecord getTxRecord()
      • setTxRecord

        public void setTxRecord​(TXRecord txRecord)
      • getOa2se

        public OA2SE getOa2se()
      • setOa2se

        public void setOa2se​(OA2SE oa2se)
      • getRequest

        public javax.servlet.http.HttpServletRequest getRequest()
      • setRequest

        public void setRequest​(javax.servlet.http.HttpServletRequest request)
      • getAdminIDs

        public List<edu.uiuc.ncsa.security.core.Identifier> getAdminIDs()
      • getClientID

        public edu.uiuc.ncsa.security.core.Identifier getClientID()
      • newInstance

        public org.qdl_lang.state.State newInstance​(org.qdl_lang.variables.VStack vStack,
                                                    org.qdl_lang.evaluate.OpEvaluator opEvaluator,
                                                    org.qdl_lang.evaluate.MetaEvaluator metaEvaluator,
                                                    org.qdl_lang.functions.FStack fStack,
                                                    org.qdl_lang.expressions.module.MTStack mTemplates,
                                                    org.qdl_lang.expressions.module.MIStack mInstances,
                                                    edu.uiuc.ncsa.security.core.util.MyLoggingFacade myLoggingFacade,
                                                    boolean isServerMode,
                                                    boolean isRestrictedIO,
                                                    boolean assertionsOn)
        Overrides:
        newInstance in class org.qdl_lang.state.State
      • addManifestConstants

        protected org.qdl_lang.variables.QDLStem addManifestConstants​(String path)
        Overrides:
        addManifestConstants in class org.qdl_lang.state.State