Class OA2State

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

    public class OA2State
    extends edu.uiuc.ncsa.qdl.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 edu.uiuc.ncsa.qdl.state.VariableState

        edu.uiuc.ncsa.qdl.state.VariableState.CyclicalError, edu.uiuc.ncsa.qdl.state.VariableState.ResolveState
    • Field Summary

      • Fields inherited from class edu.uiuc.ncsa.qdl.state.State

        extrinsicVars
      • Fields inherited from class edu.uiuc.ncsa.qdl.state.VariableState

        EXTRINSIC_MARKER, int_regex, var_regex
      • Fields inherited from class edu.uiuc.ncsa.qdl.state.NamespaceAwareState

        NS_DELIMITER, RESERVED_NAMESPACE
      • Fields inherited from class edu.uiuc.ncsa.qdl.state.ModuleState

        MTemplates
      • Fields inherited from class edu.uiuc.ncsa.qdl.state.AbstractState

        INTRINSIC_PREFIX, libPath, scriptArgs
      • Fields inherited from interface edu.uiuc.ncsa.qdl.state.QDLConstants

        FUNCTION_REFERENCE_MARKER, FUNCTION_REFERENCE_MARKER2, JSON_QDL_NULL, 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_URLCODE, SYS_CODEC_VENCODE, 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_STEM, SYS_FILE_TYPE_STRING, SYS_FILE_TYPES, SYS_HASH_ALGORITHMS, 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_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_QDL_BUILD, 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_CHARACTERS, SYS_VAR_TYPE_DECIMAL, SYS_VAR_TYPE_INTEGER, SYS_VAR_TYPE_NULL, SYS_VAR_TYPE_SET, SYS_VAR_TYPE_STEM, SYS_VAR_TYPE_STRING, SYS_VAR_TYPE_UNDEFINED, SYS_VAR_TYPES, 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​(edu.uiuc.ncsa.qdl.variables.VStack vStack, edu.uiuc.ncsa.qdl.evaluate.OpEvaluator opEvaluator, edu.uiuc.ncsa.qdl.evaluate.MetaEvaluator metaEvaluator, edu.uiuc.ncsa.qdl.functions.FStack ft, edu.uiuc.ncsa.qdl.module.MTStack mTemplates, edu.uiuc.ncsa.qdl.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
      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.
      edu.uiuc.ncsa.qdl.state.State newCleanState()  
      edu.uiuc.ncsa.qdl.state.State newFunctionState()  
      edu.uiuc.ncsa.qdl.state.State newInstance​(edu.uiuc.ncsa.qdl.variables.VStack vStack, edu.uiuc.ncsa.qdl.evaluate.OpEvaluator opEvaluator, edu.uiuc.ncsa.qdl.evaluate.MetaEvaluator metaEvaluator, edu.uiuc.ncsa.qdl.functions.FStack fStack, edu.uiuc.ncsa.qdl.module.MTStack mTemplates, edu.uiuc.ncsa.qdl.module.MIStack mInstances, edu.uiuc.ncsa.security.core.util.MyLoggingFacade myLoggingFacade, boolean isServerMode, boolean isRestrictedIO, boolean assertionsOn)  
      edu.uiuc.ncsa.qdl.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 edu.uiuc.ncsa.qdl.state.State

        addLibEntries, addLibEntry, addManifestConstants, addModule, addVFSProvider, buildSO, createSystemConstants, createSystemInfo, doXMLImportedModules, fromXML, fromXML, getDebugUtil, getExtrinsicVars, getFileFromVFS, getInternalID, getLibMap, getScriptFromVFS, getStackSize, getStateID, getSystemConstants, getSystemInfo, getTargetState, getTempVariableName, getThreadTable, getVFS, getVfsFileProviders, getWorkspaceCommands, hasMountPoint, hasVFSProviders, injectTransientFields, isAllowBaseFunctionOverrides, isAssertionsOn, isRestrictedIO, isServerMode, isVFSFile, newLocalState, newStateWithImportsNEW, newStateWithImportsNEW, readExtraXMLAttributes, removeScriptProvider, removeVFSProvider, setAllowBaseFunctionOverrides, setAssertionsOn, setDebugUtil, setRestrictedIO, setServerMode, setStateID, setSystemConstants, setSystemInfo, setTargetState, setThreadTable, setVfsFileProviders, setWorkspaceCommands, toXML, toXML, writeExtraXMLAttributes
      • Methods inherited from class edu.uiuc.ncsa.qdl.state.FunctionState

        getAllFunctionsByName, getFTStack, listAllDocumentation, listFunctionDoc, listFunctions, listFunctions, listModuleDoc, resolveFunction, resolveFunction, setFTStack
      • Methods inherited from class edu.uiuc.ncsa.qdl.state.VariableState

        getValue, getValue, gsrNSScalarOp, gsrNSStemOp, isDefined, isExtrinsic, isStem, listVariables, remove, resolveStemIndex, resolveStemIndex, setValue, setValue
      • Methods inherited from class edu.uiuc.ncsa.qdl.state.NamespaceAwareState

        getAlias, getUNQName
      • Methods inherited from class edu.uiuc.ncsa.qdl.state.ModuleState

        getImportedModule, getMInstances, getMTemplates, isImportMode, setImportMode, setMInstances, setMTemplates
      • Methods inherited from class edu.uiuc.ncsa.qdl.state.AbstractState

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

      • OA2State

        public OA2State​(edu.uiuc.ncsa.qdl.variables.VStack vStack,
                        edu.uiuc.ncsa.qdl.evaluate.OpEvaluator opEvaluator,
                        edu.uiuc.ncsa.qdl.evaluate.MetaEvaluator metaEvaluator,
                        edu.uiuc.ncsa.qdl.functions.FStack ft,
                        edu.uiuc.ncsa.qdl.module.MTStack mTemplates,
                        edu.uiuc.ncsa.qdl.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 edu.uiuc.ncsa.qdl.state.State newLocalState()
        Overrides:
        newLocalState in class edu.uiuc.ncsa.qdl.state.State
      • newFunctionState

        public edu.uiuc.ncsa.qdl.state.State newFunctionState()
        Overrides:
        newFunctionState in class edu.uiuc.ncsa.qdl.state.State
      • newCleanState

        public edu.uiuc.ncsa.qdl.state.State newCleanState()
        Overrides:
        newCleanState in class edu.uiuc.ncsa.qdl.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 edu.uiuc.ncsa.qdl.state.State newInstance​(edu.uiuc.ncsa.qdl.variables.VStack vStack,
                                                         edu.uiuc.ncsa.qdl.evaluate.OpEvaluator opEvaluator,
                                                         edu.uiuc.ncsa.qdl.evaluate.MetaEvaluator metaEvaluator,
                                                         edu.uiuc.ncsa.qdl.functions.FStack fStack,
                                                         edu.uiuc.ncsa.qdl.module.MTStack mTemplates,
                                                         edu.uiuc.ncsa.qdl.module.MIStack mInstances,
                                                         edu.uiuc.ncsa.security.core.util.MyLoggingFacade myLoggingFacade,
                                                         boolean isServerMode,
                                                         boolean isRestrictedIO,
                                                         boolean assertionsOn)
        Overrides:
        newInstance in class edu.uiuc.ncsa.qdl.state.State