HOWTO and Express Tutorial for Privileged DFC Build 6
|
|
- Angelica Walsh
- 6 years ago
- Views:
Transcription
1 HOWTO and Express Tutorial for Privileged DFC Build 6 Overview End-users with special requirements at times need limited scope permission/privilege (P 2 ) escalation. P 2 escalation means momentarily overriding administrative rights to acquire a specific greater right at runtime under controlled conditions for the focused purpose to carry out a well-defined operation. Privilege escalation begins and terminates within a precise, defined and usually short time window. Privilege escalation is not an openended acquisition of higher privilege. The Big Picture Business Object Framework (BOF) entities may need, for some legitimate reason, to acquire on-the-fly P 2 to which they are not otherwise entitled. For instance, Figure 1 represents an attempt by a BOF entity to execute a task for which it owns partial administrative permission (partial and permission here have an intentionally vague meaning). This task has an internal dependency on a highly privileged subtask needed to complete part of the work. Since the BOF entity does not have sufficient administrative permission to run the highly privileged task, execution will fail. This is, in most cases, the desired outcome. It is possible, however, that a trusted BOF entity is known to need escalation. In this case the desired outcome is for execution to succeed. Privilege escalation is a mechanism for enabling successful execution. It can allow the task to succeed even if there is a highly privileged dependency beyond the scope of the trusted BOF entity administrative permissions. (Failure from insufficient P 2 is here a defect.) In Figure 2 the execution attempt succeeds thanks to a provisional escalation of security that allows the BOF entity to run the highly privileged dependency. Administrative security permissions for the BOF entity are identical: they are the same as in the previous case. Yet, because the BOF entity is trusted and known to need escalation, a security escalation environment enables this BOF entity to acquire on the fly additional temporary privileges sufficient to carry out execution of the highly privileged subtask, and shed these privileges again when not needed anymore. Page 1
2 Figure 1 - Incomplete Escalation Figure 2 - Privilege Escalation Page 2
3 P 2 escalation depends on the existence of all of the following: a trusted BOF entity, a known need for privilege escalation, an escalation mechanism to grant privileges or permissions. A Module Example This is a how-to, so here is the code. First the module interface: package com.documentum.test.bof.priv.simplehowto; import com.documentum.fc.common.dfexception; import com.documentum.fc.client.idfmodule; import com.documentum.fc.client.idfmodulecategory; /** * Example of escalation with Privileged DFC * 6.0 */ public interface ISimpleEscalatingModule extends IDfModule, IDfModuleCategory void settitle ( final String folderpath, final String objectname, final String newtitle, final String inrolename) throws DfException; String modulename = "simpleescalationexamplemodule"; String unprivilegedusername = "<myunprivilegeduser>"; String unprivilegeduserpassword = "<myunprivilegeduserpasswd>"; String docbasename = "<mydocbase"; Next the module implementation: package com.documentum.test.bof.priv.simplehowto; import com.documentum.fc.common.dfexception; import com.documentum.fc.common.idflogininfo; import com.documentum.fc.common.dflogininfo; import com.documentum.fc.client.idfsession; import com.documentum.fc.client.idfsysobject; import com.documentum.fc.client.idfsessionmanager; import com.documentum.fc.client.idfclient; import com.documentum.fc.client.dfclient; Page 3
4 import com.documentum.fc.client.idffolder; import com.documentum.fc.client.security.dfprivilegedexceptionactioninrole; import com.documentum.fc.client.security.dfrolespec; import java.security.accesscontroller; import java.security.privilegedexceptionaction; import java.security.privilegedactionexception; /** * Example of escalation with Privileged DFC * 6.0 */ public class SimpleEscalatingModule implements ISimpleEscalatingModule public String getname () return modulename; public void settitle ( final String folderpath, final String objectname, final String newtitle, final String inrolename) throws DfException final IDfSession session = getsessionwithunprivilegeduser(); try AccessController.doPrivileged( new DfPrivilegedExceptionActionInRole<String>( new DfRoleSpec(inRoleName), true, new PrivilegedExceptionAction<String>() public String run () throws DfException IDfFolder folder= null; if (null!=folderpath && 0<folderPath.length()) folder = session.getfolderbypath(folderpath); String qualification = "dm_document where object_name = '" + objectname + (null==folder?"'": ("' and FOLDER(ID('" + folder.getobjectid() + "'))")); IDfSysObject object = (IDfSysObject) session.getobjectbyqualification(qualification); object.settitle(newtitle+(new java.util.date())); object.save(); return null; Page 4
5 )); catch ( PrivilegedActionException e) Exception realexception = e.getexception(); if ( realexception instanceof DfException ) throw (DfException)realException; else throw new DfException(realException); catch ( RuntimeException e) throw e; finally releasesession(session); private IDfSession getsessionwithunprivilegeduser () throws DfException client = DfClient.getLocalClient(); sm = client.newsessionmanager(); login = new DfLoginInfo( unprivilegedusername, unprivilegeduserpassword); sm.setidentity(docbasename, login); return sm.getsession(docbasename); private void releasesession(idfsession session) sm.release(session); protected IDfSessionManager sm; protected IDfClient client; protected IDfLoginInfo login; The above module is compiler ready, just set a suitable user, password and docbase. Provided everything is configured properly, any unprivilegedusername will be able to set the title of a document and save it, even if that user does not have administrative permission to do so. Besides the additional out-of-band configuration, the only peculiar trait of the above module is this: AccessController.doPrivileged( new DfPrivilegedExceptionActionInRole<String>( new DfRoleSpec(inRoleName), true, new PrivilegedExceptionAction<String>() public String run () throws DfException Page 5
6 // escalated DFC code goes here )); The JVM that runs DFC will inspect all stack activation frames included between the current one (top of the stack, i.e. most recent call) and the last frame activated prior to the invocation of the AccessController.doPrivileged block. (We shall call security context the scope of the inspection.) Java will check if any frame lacks a particular permission associated with the lexical value of the String inrolename. If no lack is found, then execution continues. If any stack frame in the security context lacks this permission then execution terminates with an exception. The purpose of AccessController.doPrivileged is not to effect the check (the check happens in any case when escalation is requested), but to limit from below the depth of the active stack frames subject to checking, so as not to include in the security context other frames outside of the module that would certainly fail to pass such check. Therefore, AccessController.doPrivileged is not an enforcement mechanism, but rather an enablement mechanism: the check is done in any case, but without using AccessController.doPrivileged it will certainly fail as it would include calls made outside of the privileged module in activation frames without the escalation permission. Why would it be so? Since the module acquires the needed permission (as in java.security.permission) associated with the lexical value of the String inrolename at load time, it follows that other code not part of this privileged module did not acquire any permissions at load time. The other code cannot escalate with the privilege of inrolename. Of course, there is additional configuration to carry out. Assuming you can install the.jar files for the above module as usual (e.g. as done in Documentum 5.3), the following driver enables escalation programmatically in DFC 6.0. package com.documentum.test.bof; import com.documentum.fc.client.idfsession; import com.documentum.fc.client.idfgroup; import com.documentum.fc.client.idfdocument; import com.documentum.fc.client.idfacl; import com.documentum.fc.client.dfclient; import com.documentum.fc.client.idfsessionmanager; import com.documentum.fc.client.idfclient; import com.documentum.fc.client.idffolder; import com.documentum.fc.client.idfsysobject; import com.documentum.fc.client.idfpersistentobject; import com.documentum.fc.client.impl.bof.cache.classcachemanager; import com.documentum.fc.common.dfexception; import com.documentum.fc.common.dflogininfo; import com.documentum.fc.common.idflogininfo; import com.documentum.test.bof.priv.simplehowto.isimpleescalatingmodule; Page 6
7 /** * Driver for simple escalation example. * 6.0 */ public class ZSimpleEscalationHowtoDriver public ZSimpleEscalationHowtoDriver() throws DfException client = DfClient.getLocalClient(); sm = client.newsessionmanager(); login = new DfLoginInfo( privilegedusername, privilegeduserpassword); sm.setidentity(docbasename, login); session = sm.getsession(docbasename); private IDfACL createacl( IDfSession session, String rolename) throws DfException IDfACL acl = (IDfACL) session.newobject("dm_acl"); acl.grant("dm_owner", 7, null); acl.grant(rolename, 7, null); acl.save(); return acl; private IDfDocument createobject ( IDfSession session, IDfACL acl, String objectname) throws DfException IDfPersistentObject object = session.getobjectbypath(objectname); if (null!=object) object.destroy(); IDfDocument document = (IDfDocument) session.newobject("dm_document"); document.setobjectname(objectname); document.settitle("testdocumenttitle"); document.setacl(acl); document.save(); return document; private void createprotectedrole ( IDfSession session, String rolename) throws DfException IDfGroup role = session.getgroup(rolename); if (role == null) Page 7
8 role = (IDfGroup) session.newobject("dm_group"); role.setgroupname(rolename); role.setdynamic(true); role.setboolean("is_protected", true); role.addgroup("dm_world"); role.save(); private void makemoduleprivileged ( IDfSession session, String modulename, String rolename) throws DfException IDfFolder module = (IDfFolder) session.getobjectbyqualification( "dmc_module where object_name='" + modulename + "'"); module.setboolean("a_is_privileged", true); module.truncate("a_privilege_roles", 0); module.appendstring("a_privilege_roles", rolename); module.save(); ClassCacheManager.getInstance(). requestcacheconsistencycheck(); private void initialize() throws DfException createprotectedrole(session, rolename); makemoduleprivileged(session,modulename,rolename); IDfACL acl = createacl(session,rolename); createobject(session, acl, objectname); private ISimpleEscalatingModule getmodule ( IDfSessionManager sm) throws DfException return (ISimpleEscalatingModule) DfClient.getInstance().newModule( docbasename, modulename, sm); private IDfSysObject getbyqualitification( IDfSession session, String folderpath, String objectname) throws DfException IDfFolder folder= null; if (null!=folderpath && 0<folderPath.length()) folder = session.getfolderbypath(folderpath); String qualification = Page 8
9 "dm_document where object_name = '" + objectname + (null==folder?"'": ("' and FOLDER(ID('" + folder.getobjectid() + "'))")); IDfSysObject object = (IDfSysObject) session.getobjectbyqualification(qualification); return object; public static void main (String[] args) ZSimpleEscalationHowtoDriver driver = null; try driver = new ZSimpleEscalationHowtoDriver(); driver.initialize(); IDfSysObject object = driver.getbyqualitification( driver.session,"",objectname); System.out.println( "old title: "+object.gettitle()); ISimpleEscalatingModule module = driver.getmodule(driver.sm); module.settitle(null,objectname, "Title set by module on ",driver.rolename); object = driver.getbyqualitification( driver.session,"",objectname); System.out.println("new title: "+object.gettitle()); catch (DfException e) System.out.println("**** Ohps! ****"); e.printstacktrace(); finally driver.sm.release(driver.session); final static String modulename = "simpleescalationexamplemodule"; private final static String objectname = "TheNameOfThisObject_1234XQ"; private final String privilegedusername = "<myprivilegedusername>"; private final String privilegeduserpassword = "<myprivilegeduserpasswd>"; private final String docbasename = "<mydocbase>"; private final String rolename = "my_rw_escalation_role"; private IDfSessionManager sm; private IDfClient client; private IDfLoginInfo login; private final IDfSession session; Page 9
10 That is lengthy, but again, it is also compiler ready after setting a suitable user, password and docbase. Out-of-band configuration for running Privileged DFC include several steps in addition to what BOF requires, for instance, in Documentum 5.3. These steps are: create an escalation role (createprotectedrole) make the module privileged (makemoduleprivileged) create a suitable ACL (createacl), recommended but not strictly necessary under certain circumstances All can be carried out programmatically, and most of them can be carried out administratively in build 6. One last thing is needed before running: in a suitable location (see appendix) it is necessary to create the file.java.policy with this content (or to edit the file, if already existing): grant codebase "<fully qualified dfc.jar filename>" permission com.documentum.fc.client.impl.bof.security.rolepermission "*", "propagate"; ; After this hands-on introduction [ALL WORKS AS SESCRIBED IN BUILD 6] let s tackle a bit of background information. Design and Administration Before Runtime Privileged DFC is appropriate if a module that runs with insufficient administrative permissions must carry out a critical part of its overall operation that needs greater privilege. To start taking advantage of Privileged DFC it is necessary, among the rest, to plan privilege usage and know with certainty what the administrative permissions of the module will be (i.e. what username/password will be used to run it) identify all critical functionality with insufficient administrative permissions define without ambiguity what additional P 2 this critical functionality requires assess what dependencies on external code the critical functionality may have (e.g. what calls to external libraries that are not DFC core 1 it will make) analyze execution and determine potential security issues o in the critical functionality 1 The following namespaces: com.documentum.fc.* com.documentum.dmcl.* com.documentum.djcb.* com.documentum.operations.* com.documentum.registry.* com.documentum.tracing.* com.documentum.vdm.* com.documentum.xml.* define DFC core. All DFC namespaces are sealed in DFC 6.0: BOF code is not allowed in any DFC core namespaces. Page 10
11 o in the external dependencies decide if external dependencies may or must not be privileged find alternate solutions for dependencies that must not be privileged Once privileged usage is determined, it will become clear what additional P 2 the escalation with Privileged DFC must provide to the running code, and if these additional P 2 must be granted to the module alone (a normal escalation) or to the module and its external dependencies as well (a propagating escalation). Privileged DFC uses a dynamic security model based on roles to make available such additional P 2. It is mandatory to design these roles to provide exactly what runtime P 2 the critical code needs: Too little P 2 will be insufficient for successful execution. Too much P 2 offers potential for abuse or disaster and is in general bad practice. Privilege roles need identifiers. Here are the lexical rules for creating identifiers given to custom roles, whose names are arbitrary within the following constraints: must NOT begin with the lowercase characters dm_ only a sequence of characters from the set [a-za-z_] is allowed length must not exceed 32 characters For instance, if we have determined that our hypothetical module Foo needs exactly <update doc object> runtime P 2 to carry out its mission, then we know enough at this point to declare a role for Privileged DFC. Let the name of this role be role_foo_update as an example. Module Foo should acquire at runtime <update doc object> (no more, no less) in addition to the normal administrative permissions associated with it. Here, <update doc object> is a placeholder that conveys a meaning, rather than the details of how to bring that meaning to existence we re not quite there yet. Hypothetically, let module Foo include a java class named Bar with a method named updatemyobject(). This method throws DfException, returns a Boolean and must have <update doc object> P 2 to succeed. The escalation is normal (i.e. it does not need to propagate). To exercise runtime escalation the method, among the rest, must be invoked in a privileged block associated with role_foo_update The above is accomplished as in the following code snippet: [ ] import com.documentum.fc.client.security.dfrolespec; import com.documentum.fc.client.security. DfPrivilegedExceptionActionInRole; [ ] Page 11
12 [ ] final Bar mybar = this; try return AccessController.doPrivileged( new DfPrivilegedExceptionActionInRole<Boolean>( new DfRoleSpec( role_foo_update ), new PrivilegedExceptionAction<Boolean>() public Boolean run () throws DfException return mybar.updatemyobject(); )); catch (PrivilegedActionException e) Exception realexception = e.getexception(); if ( realexception instanceof DfException ) throw (DfException)realException; else throw new DfException(realException); catch ( RuntimeException e) throw e; [ ] Now we know enough to code our module (which we have just done), and we have the information to configure the escalation, which we ll do next. First, using Documentum Application Builder or programmatically through a user with administrative privilege we go through the usual exercise of installing the module. In addition, we must set two new attributes in dmc_module: Attribute name Data type Single / Description Repeating a_is_privileged Boolean Single true if the module is privileged, false otherwise. Set at installation only. a_privilege_roles String repeating if a_is_privileged is true, this is the list of roles the module may assume. Otherwise, it must be empty. Set at installation only. This is the list of possible value of these combined attributes: a_is_privileged false a_privilege_roles empty (must be empty) Page 12
13 a_is_privileged true a_privilege_roles non-empty (must not be empty) For our module Foo, a_is_privileged is true, and a_privilege_roles is exactly equal to the lexical token role_foo_update Next, we need to configure the content server (for instance, using DA) and define role_foo_update. Roles eventually map onto the content server to dynamic groups crafted for the purpose. The following is a list of what runtime P 2 are available for escalation out-of-the-box for all D6 content servers: Superuser Role (dm_superusers_role) Default permissions: Inclusion in dm_superusers group Default membership: None Superuser Role (dm_browse_all_role) Default permissions: Inclusion in dm_browse_all group Default membership: None Sysadmin Role (dm_sysadmin_role) Default permissions: Inclusion in dm_sysadmin group Default membership: None User Identity Override Role (dm_user_identity_override_role) Default permissions: Has Object-Modifier-Control rights Default membership: dm_world Datefield Override Role (dm_datefield_override_role) Default permissions: Has Object-Timestamp-Control rights Default membership: dm_world Internal Attribute Override Role (dm_internal_attribute_override_role) Default permissions: Has Object-Attribute-Override rights Default membership: dm_world Assume User Role (dm_assume_user_role) Default permissions: Inclusion in dm_assume_user group. Default membership: dm_world All these default roles (their identifiers begin with the reserved dm_ prefix) are protected by default, which means that the role is available for exercise if and only if the dfc asking escalation privilege is registered with the server. Also, none of these roles are appropriate for Foo. For our module Foo it is appropriate to create a custom role role_foo_update comprising <update doc object> that (meaning update to include delete) can be realized Page 13
14 with an ACL accessorpermit value of 7. All this can be done programmatically (access must be available with sufficient administrative permissions) for instance like this: (IDfGroup) role = (IDfGroup) session.newobject("dm_group"); role.setgroupname( role_foo_update ); role.setdynamic(true); role.setboolean("is_protected", true); if (istightlycontrolledaccess) role.adduser( <sessionusername> ); else role.addgroup( dm_world ); role.save(); Note that is_protected is set to true. ACL for the target object could be IDfACL acl = (IDfACL)session.newObject("dm_acl"); acl.grant( dm_world, 1, null); acl.grant( dm_owner, 7, null); acl.grant( role_foo_update, 7, null); acl.save(); What if I need superuser power? Well, there are rare occasions where you really can t do without that. If this is the case, instead of defining a custom role you may instead use an appropriate out-of-the-box dm_* role: associate your privileged code with the matching dm_* lexical token. don t forget to update the membership of the role with your user or group, if necessary (e.g. when acting on an object that is not browsable by dm_world) DFC Installation for Privileged DFC There is more plumbing that must be in place for escalation to work, mostly administrative one-time-only tasks. This is the justification for the additional complication: the content server must know to which DFC installations it may grant escalation right, and to which it must decline escalation rights (for instance, it is wise to decline escalation rights to any unknown instance of Documentum Desktop when the rights are protected) in order to distinguish between DFC installations, each installation must have an identity such identity must be registered with the content server for escalation rights to be granted. DFC D6 enabled for Privileged DFC will, at installation time, create its own PKI credentials [NOT IMPLEMENTED IN BUILD 6] (a private key and a self-signed certificate) distinguished with a unique identity string (at present, a self-generated form of UUID or GUID or similar hash). These credentials are created and kept in a keystore Page 14
15 in the same directory where dfc.properties is also found. The self signed certificate is also shared by publishing it in the Global Registry. In turn, the server [NOT IMPLEMENTED IN BUILD 6] retrieves the self-signed certificate administratively using DA. To enable escalation with role_foo_update for module Foo originating from the DFC installation with identity <mydfc>, the server must associate administratively using DA role_foo_update with <mydfc>. Any other dfc installation with a different identity may not escalate Foo with role_foo_update unless, of course, that different identity is also associated with that role. Runtime Relax. You did your part. Now it s time for DFC and the content server (and your module Foo, of course), to get to work. This is an overview of what happens at runtime, so you may troubleshoot what didn t work (What? It did not work the first time?) with more effectiveness. When a session enabled for privilege escalation is established, two identities are submitted to the content server from the DFC client: the user identity, and the DFC identity. Verification for the user identity is by means of a secret password. Administrative permissions will be checked against those associated with the user identity. Verification of the DFC identity is done using digital signatures: DFC sends, transparently to user code, an identity bundle to the server signed with DFC s private key. The content server verifies the signature using the public certificate of this DFC, formerly retrieved from the repository. Escalation privileges will be checked not to exceed those associated with the identity of the DFC. When the user application retrieves the.jar archives of Foo from the DocBase, a custom class loader checks if a_is_privileged is true and the value in a_privilege_roles and, if the class loader is happy (it will be if you follow all rules), it will give at load time the escalation privilege found in a_privilege_roles to the bytecode classes of Foo. Incidentally, unless you rewrite the class loader, the only manner to test escalation is to retrieve a module from the DocBase and actually load its bytecode via DFC. Two sets of checks happen when Foo executes a privileged block: Java SecurityManager checks DFC escalation checks Another way to look at the same mechanism is to state that DFC allows escalation provided the SecurityManager raises no objections. The Java SecurityManager will inspect all stack activation frames included between the current one (top of the stack, most recent call) and the last frame activated prior to the invocation of the most recent AccessController.doPrivileged() block. (We shall call security context the scope of the inspection.) The SecurityManager will check if any frame lacks a particular permission, in this case role_foo_update. If no lack is found, Page 15
16 then execution will continue. If any stack frame lacks role_foo_update, then execution terminates with an exception. (This is the default behavior of the Java security model.) Since Foo acquires permission (as in java.security.permission) role_foo_update at load time, any bytecode that is part of its.jar also has that permission. However, nobody else (except core functionality of DFC itself) has that permission, as it may be acquired by a module at load time only. In case of normal escalation, this is sufficient. For propagating escalation, it becomes necessary to allow execution for code that may not have been loaded with role_foo_update permission. In this latter case, DFC will take a snapshot of the original security context, and carry out SecurityManager checks against that original snapshot rather than against the actual activated stack frames. Provided all checks succeed, DFC will issue to the content server an enhanced RPC with additional fields including among the rest the privileged role requested (in this case role_foo_update). The content server, on receiving the enhanced RPC, verifies that role_foo_update has been declared (for instance with DA at configuration time) and therefore exists, [NOT IMPLEMENTED IN BUILD 6] that escalation with role_foo_update is allowed for this session (i.e. the id of DFC in the session is associated with role_foo_update), and that the user of the session (as in username/password) has membership in role_foo_update (remember a role is a dynamic group on the server) If all three checks succeed then, after some internal housekeeping, the server executes whatever action the RPC requested using the set union of username administrative permissions and role_foo_update escalated permissions. In other words, overall permissions are a logical OR on the two permission sets: the operation will succeed if there are sufficient (administrative permissions OR escalated permissions). Escalation is stateless. At the end of each RPC the server keeps no state of escalation. The next RPC may not be escalated without also including the enhanced information: Each RPC must include its own privilege enhancements. On the client side, after completion of the code in the privileged block DFC also stops enhancing RPC requests. The session, however, remembers the id of the DFC as well as the identity (username) of the user. How Privileged DFC Works To use Privileged DFC it helps to understand how it works. Without too much detail, here are the building blocks of the operation of Privileged DFC. The following is an informal, but comprehensive laundry list that puts in context the new terms (underlined) that were explained in this tutorial and how-to. First, an important clarification: Module here means either module or TBO, that is a BOF entity guaranteed to be bound to a DocBase. An SBO is in general a global service and is not necessarily bound to a Page 16
17 DocBase. Only BOF code guaranteed to be bound to a DocBase may run with escalation; SBO may not be escalated with Privileged DFC. Attempting the contrary is not allowed and will fail with errors. Before Runtime Write a module, call it Foo (developers do this) o Plan privileged context usage o Design roles as needed o Code privileged blocks with privileged API Create docbase object (with DAB or programmatically) o Create dmc_module object o Set a_is_privileged o Set a_privileged_roles o Save jar to docbase Declare docbase roles (with DAB or programmatically) o RMRole1 o RMRole2 o Define docbase roles granting privileges and permissions to roles (programmatically or with previously existing DA functionality there is no targeted tool support planned for D6.0) o RMRole1: <escalatedwrite> o RMRole2: <creategroup> o Register DFC instance (DFC install) o Create PKI keys in local keystore o Create self-signed certificate o Share certificate to Global Registry o Update dfc.properties Grant rights to use roles to DFC instance (with DA) o Copy DFC certificate to local repository o Update rights database for repository for roles RMRole1, RMRole2 using DFC identity At Runtime (Web App starts) (Browser connects and opens repository) Start session through DFC o Identity for user: DFC sends username/password to server o Identity for DFC: DFC sends authentication bundle to server Server session validates authentication bundle signature using DFC certificate and stores DFC id o Repository validates that this id can use this repository Page 17
18 o Repository validates that this user can use this repository App code invokes module Foo o DFC obtains Foo o DFC validates/verifies Foo if loaded from cache o DFC gets role list from dmc_module and loads Foo with added privileges Code executes privileged block for RMRole1 o DFC/JSM validate that class was loaded with rights to added privileges o DFC invokes execution from content server with privilege-enhanced RPC Server RPC is received with privilege o Server validates that RMRole1 Exists, AND Is allowed for session (i.e. DFC id) [not in build 6], AND Is allowed for username/password All three conditions must be true for success (two in build 6) o Server housekeeping: server adds to dynamic group list Asserted role RMRole1 Any group containing RMRole1 Server request executes e.g. update doc object o Server validates that session may update doc object ACL checks for user usergroup, OR Special escalated write checks At least one of the above conditions must succeed At end of RPC server removes privilege dynamic group inclusions that were stateless and any inherited ones. At end of privileged block DFC stops sending privilege request with RMRole1 Privileged block logic 1. is role propagating? o YES: take snapshot of security context (SOSC) o NO: just continue 2. invoke action o include subcalls and activate their stack frames o subcall can include java function calls, invocations of other privileged modules, invocation of other unprivileged modules 3. if any RPC are involved, check permissions o is role propagating? YES: check against SOSC NO: check against the current security context 4. send RPC with privilege if and only if step 3 is successful Normal or Propagated Escalation? Propagating escalation rights is dangerous. Propagated rights may grant privileges to unsafe, poorly written or downright malicious code. Propagater beware. When should one use propagated escalation? If and only if any alternative is utterly unfeasible; ideally, never. Page 18
19 Alternatives to propagating escalation rights are many. It is possible to design code so that each module is independently privileged with distinct roles. It is possible to create a privileged module that temporarily alters a few selected ACL so that a lesser privileged (or unprivileged) module can complete its tasks, and then restores the original ACL. It is possible to be very creative in devising alternatives. It is. There may be a handful of cases where propagation is the only applicable solution. Be very careful; you are leaving the keys to your home in the middle of the public highway. APPENDIX - Java Policy File $JREHOME/lib/security/java.security The file $JREHOME/lib/security/java.security configures the startup environment for finding the policy files. java.security has several entries: Here are the important ones for the policy files: policy.allowsystemproperty=true policy.url.1=file:$java.home/lib/security/java.policy policy.url.2=file:$user.home/.java.policy There are two default policy files because of the two default entries in java.security. If a different set of policy files is preferred as default, it is necessary to edit the java.security file and change the URLs that are used to identify them. Any number of URLs can be specified, but they must be numbered consecutively beginning with 1. Users can specify any number of policy files on the command line as well. To prevent users from specifying additional policy files, the allowsystemproperty property must be set to false. $java.home/lib/security/java.policy $user.home/.java.policy Java virtual machines can use any number of policy files, but there are two that are used by default as shown above, since they are set in java.security. The global policy file is named $JREHOME/lib/security/java.policy. This file is used by all instances of a virtual machine on a host. In addition, there is a user-specific policy file called.java.policy that may exist in the home directory of the user that starts the virtual machine. The set of permissions given to a program is the union of permissions contained in the global and user-specific policy files. Policy files are simple text files. You can administer them with policytool, or you can edit them by hand. The fiduciary custodian of administrative security must tighten access to java.security and to any and all policy files, and must prevent users from specifying additional policy files if the java startup environment is loose. Page 19
20 A syntax guide for the policy file is available with the JDK documentation. For instance, for Java 1.5.0, the guide is found at.\docs\guide\security\policyfiles.html Page 20
TROUBLESHOOTING DOCUMENTUM ACS READ URL GENERATION FAILURES
TROUBLESHOOTING DOCUMENTUM ACS READ URL GENERATION FAILURES ABSTRACT This whitepaper provides the necessary steps needed for troubleshooting the ACS read URL generation failures. This whitepaper will be
More informationxcp: Custom Java Function To Access DFC IDfSession
White Paper xcp: Custom Java Function To Access DFC IDfSession Writing a custom java function that can access DFC IDfSession Abstract This white paper explains writing a custom Java Function that can access
More informationEMC Documentum Foundation Classes
EMC Documentum Foundation Classes Version 6.6 Development Guide EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Legal Notice Copyright 1999-2014 EMC Corporation.
More informationJava 2 Security. Dean Wette Senior Software Engineer Object Computing, Inc.
Java 2 Security Dean Wette Senior Software Engineer Object Computing, Inc. St. Louis Java Users Group, 11 Oct. 2001 University of MO-Rolla, Computer Science Colloquium, 1 Nov. 2001 Overview Java Platform
More informationHigh Volume Server Tuning Guide
High Volume Server Tuning Guide This document provides guidance on High Volume Server. The High Volume Server is part of the Documentum 6,5 Architecture. The Documentum High Volume Server is an extension
More informationMarkLogic Server. Security Guide. MarkLogic 9 May, Copyright 2017 MarkLogic Corporation. All rights reserved.
Security Guide 1 MarkLogic 9 May, 2017 Last Revised: 9.0-3, September, 2017 Copyright 2017 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Security Guide 1.0 Introduction
More informationWhat s New In DFC. Quick Review. Agenda. Quick Review Release 5.3 Q&A Post 5.3 plans. David Folk Product Manager
What s New In DFC David Folk Product Manager 1 Agenda Quick Review Release 5.3 Q&A Post 5.3 plans 2 Quick Review 3 1 Everyone should know: DFC Documentum Foundation Classes Primary client API for platform
More informationEMC Documentum Composer
EMC Documentum Composer Version 6 SP1 User Guide P/N 300 005 253 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights
More informationEMC Documentum Composer
EMC Documentum Composer Version 6.0 SP1.5 User Guide P/N 300 005 253 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All
More informationEMC Documentum Archive Services for SAP
EMC Documentum Archive Services for SAP Version 6.0 Administration Guide P/N 300 005 490 Rev A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2004
More informationJava Security. Compiler. Compiler. Hardware. Interpreter. The virtual machine principle: Abstract Machine Code. Source Code
Java Security The virtual machine principle: Source Code Compiler Abstract Machine Code Abstract Machine Code Compiler Concrete Machine Code Input Hardware Input Interpreter Output 236 Java programs: definitions
More informationThe security mechanisms of Java
The security mechanisms of Java Carlo U. Nicola, SGI FHNW With extracts from publications of : Sun developers' center documentation; David A. Wheeler, UC Berkeley; Klaus Ostermann, TH-Darmstadt. Topics
More informationDCLI User's Guide. Data Center Command-Line Interface 2.9.1
Data Center Command-Line Interface 2.9.1 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments about this documentation, submit
More informationDCLI User's Guide. Data Center Command-Line Interface
Data Center Command-Line Interface 2.10.2 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments about this documentation, submit
More informationA web-based IDE for Java
A web-based IDE for Java Software Engineering Laboratory By: Supervised by: Marcel Bertsch Christian Estler Dr. Martin Nordio Prof. Dr. Bertrand Meyer Student Number: 09-928-896 Content 1 Introduction...3
More informationIBD Intergiciels et Bases de Données
IBD Intergiciels et Bases de Données RMI-based distributed systems Fabien Gaud, Fabien.Gaud@inrialpes.fr Overview of lectures and practical work Lectures Introduction to distributed systems and middleware
More informationVIRTUAL GPU LICENSE SERVER VERSION , , AND 5.1.0
VIRTUAL GPU LICENSE SERVER VERSION 2018.10, 2018.06, AND 5.1.0 DU-07754-001 _v7.0 through 7.2 March 2019 User Guide TABLE OF CONTENTS Chapter 1. Introduction to the NVIDIA vgpu Software License Server...
More informationA. It is a JMX-based monitoring tool that is accessible using Documentum Administrator.
Volume: 169 Questions Question No: 1 What is a resource agent? A. It is a JMX-based monitoring tool that is accessible using Documentum Administrator. B. It is a feature of Application Builder, used to
More informationInfo 408 Distributed Applications Programming Exercise sheet nb. 4
Lebanese University Info 408 Faculty of Science 2017-2018 Section I 1 Custom Connections Info 408 Distributed Applications Programming Exercise sheet nb. 4 When accessing a server represented by an RMI
More informationEMC EXAM - E Content Management System Administration. Buy Full Product.
EMC EXAM - E20-465 Content Management System Administration Buy Full Product http://www.examskey.com/e20-465.html Examskey EMC E20-465 exam demo product is here for you to test the quality of the product.
More informationEMC Documentum Composer
EMC Documentum Composer Version 6.5 SP2 User Guide P/N 300-009-462 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Copyright 2008 2009 EMC Corporation. All
More informationDCLI User's Guide. Modified on 20 SEP 2018 Data Center Command-Line Interface
Modified on 20 SEP 2018 Data Center Command-Line Interface 2.10.0 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments about
More informationSignicat Connector for Java Version 2.6. Document version 3
Signicat Connector for Java Version 2.6 Document version 3 About this document Purpose Target This document is a guideline for using Signicat Connector for Java. Signicat Connector for Java is a client
More informationOracle Advanced Security: Enterprise User Management. An Oracle Technical White Paper November 1999
Advanced Security: Enterprise User Management An Technical White Paper Advanced Security: Enterprise User Management THE CHALLENGES OF USER MANAGEMENT Some of the challenges faced by an enterprise today
More informationTalend Component tgoogledrive
Talend Component tgoogledrive Purpose and procedure This component manages files on a Google Drive. The component provides these capabilities: 1. Providing only the client for other tgoogledrive components
More informationDCLI User's Guide. Data Center Command-Line Interface 2.7.0
Data Center Command-Line Interface 2.7.0 You can find the most up-to-date technical documentation on the VMware Web site at: https://docs.vmware.com/ The VMware Web site also provides the latest product
More informationAdministering Jive Mobile Apps for ios and Android
Administering Jive Mobile Apps for ios and Android TOC 2 Contents Administering Jive Mobile Apps...3 Configuring Jive for Android and ios...3 Custom App Wrapping for ios...3 Authentication with Mobile
More informationCoveo Platform 7.0. Oracle UCM Connector Guide
Coveo Platform 7.0 Oracle UCM Connector Guide Notice The content in this document represents the current view of Coveo as of the date of publication. Because Coveo continually responds to changing market
More informationCIS 551 / TCOM 401 Computer and Network Security. Spring 2007 Lecture 4
CIS 551 / TCOM 401 Computer and Network Security Spring 2007 Lecture 4 Access Control Last time: Unix/Windows access control at the OS level. Access control matrix Reference monitor Today: Stack Inspection
More informationJava Security. A Brief Introduction. Fred Long. The University of Wales, Aberystwyth UK. U.W. Aberystwyth CS25610/CHM5610. Java Security p.
Java Security A Brief Introduction Fred Long The University of Wales, Aberystwyth UK Java Security p.1/24 Some Books Java Security, by Scott Oaks, O Reilly, 2nd edition, 2001. Inside Java 2 Platform Security,
More informationNasuni Data API Nasuni Corporation Boston, MA
Nasuni Corporation Boston, MA Introduction The Nasuni API has been available in the Nasuni Filer since September 2012 (version 4.0.1) and is in use by hundreds of mobile clients worldwide. Previously,
More informationServer Extensions Developer Guide
Teiid - Scalable Information Integration 1 Server Extensions Developer Guide 6.2.0 1. Introduction... 1 2. Teiid Security... 3 2.1. Teiid Security... 3 2.1.1. Introduction... 3 2.1.2. Authentication...
More informationUsing the Horizon vrealize Orchestrator Plug-In
Using the Horizon vrealize Orchestrator Plug-In VMware Horizon 6 version 6.2.3, VMware Horizon 7 versions 7.0.3 and later Modified on 4 JAN 2018 VMware Horizon 7 7.4 You can find the most up-to-date technical
More informationEMC Documentum Process Builder
EMC Documentum Process Builder Version 6 Installation Guide P/N 300 005 224 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Copyright 2004-2007 EMC Corporation.
More informationSecurity Policy File Best Practices For Your Java/JDBC Modules
Security Policy File Best Practices For Your Java/JDBC Modules Ilesh Garish, PMTS, Oracle Douglas Surber, CMTS, Oracle Kuassi Mensah, Director, PM, Oracle Oct 02, 2017 2 Safe Harbor Statement The following
More informationCode Reuse: Inheritance
Object-Oriented Design Lecture 14 CSU 370 Fall 2008 (Pucella) Tuesday, Nov 4, 2008 Code Reuse: Inheritance Recall the Point ADT we talked about in Lecture 8: The Point ADT: public static Point make (int,
More informationNested Classes in Java. Slides by: Alon Mishne Edited by: Eran Gilad, Eyal Moscovici April 2013
Nested Classes in Java Slides by: Alon Mishne Edited by: Eran Gilad, Eyal Moscovici April 2013 1 In This Tutorial Explanation of the nested class concept. Access modifiers and nested classes. The types
More informationOperating Systems Design Exam 3 Review: Spring Paul Krzyzanowski
Operating Systems Design Exam 3 Review: Spring 2012 Paul Krzyzanowski pxk@cs.rutgers.edu 1 Question 1 An Ethernet device driver implements the: (a) Data Link layer. (b) Network layer. (c) Transport layer.
More informationNasuni Data API Nasuni Corporation Boston, MA
Nasuni Corporation Boston, MA Introduction The Nasuni API has been available in the Nasuni Filer since September 2012 (version 4.0.1) and is in use by hundreds of mobile clients worldwide. Previously,
More informationClientNet. Portal Admin Guide
ClientNet Portal Admin Guide Document Revision Date: June 5, 2013 ClientNet Portal Admin Guide i Contents Introduction to the Portal... 1 About the Portal... 1 Logging On and Off the Portal... 1 Language
More informationIdentity-based Access Control
Identity-based Access Control The kind of access control familiar from operating systems like Unix or Windows based on user identities This model originated in closed organisations ( enterprises ) like
More informationChecked and Unchecked Exceptions in Java
Checked and Unchecked Exceptions in Java Introduction In this article from my free Java 8 course, I will introduce you to Checked and Unchecked Exceptions in Java. Handling exceptions is the process by
More informationBEAAquaLogic. Service Bus. Interoperability With EJB Transport
BEAAquaLogic Service Bus Interoperability With EJB Transport Version 3.0 Revised: February 2008 Contents EJB Transport Introduction...........................................................1-1 Invoking
More informationSend documentation comments to
CHAPTER 6 Configuring Certificate Authorities and Digital Certificates This chapter includes the following topics: Information About Certificate Authorities and Digital Certificates, page 6-1 Default Settings,
More informationCanadian Access Federation: Trust Assertion Document (TAD)
Purpose A fundamental requirement of Participants in the Canadian Access Federation is that they assert authoritative and accurate identity attributes to resources being accessed, and that Participants
More informationAddressing Security In The Eclipse Core Runtime (RCP)
Addressing Security In The Eclipse Core Runtime (RCP) What is needed & how do we get there? Larry Koved, Marco Pistoia, Ted Habeck IBM T. J. Watson Research Center Hawthorne, New York Eclipse RCP is intended
More informationAssertions and Exceptions Lecture 11 Fall 2005
Assertions and Exceptions 6.170 Lecture 11 Fall 2005 10.1. Introduction In this lecture, we ll look at Java s exception mechanism. As always, we ll focus more on design issues than the details of the language,
More informationKAIST Graduate School of Information Security SAR(Security Analysis Report)
Document # CSRC-12-03-011 Title Java Applet Vulnerability Analysis (CVE-2012-5076) Type Attack Trend Technical Analysis Specialty Analysis Data November 15, 2012 Modified November 19, 2012 Author KAIST
More informationDistributed Computing Environment (DCE)
Distributed Computing Environment (DCE) Distributed Computing means computing that involves the cooperation of two or more machines communicating over a network as depicted in Fig-1. The machines participating
More informationHOMELESS INDIVIDUALS AND FAMILIES INFORMATION SYSTEM HIFIS 4.0 TECHNICAL ARCHITECTURE AND DEPLOYMENT REFERENCE
HOMELESS INDIVIDUALS AND FAMILIES INFORMATION SYSTEM HIFIS 4.0 TECHNICAL ARCHITECTURE AND DEPLOYMENT REFERENCE HIFIS Development Team May 16, 2014 Contents INTRODUCTION... 2 HIFIS 4 SYSTEM DESIGN... 3
More informationThis assignment requires that you complete the following tasks (in no particular order).
Construction Objectives The objectives of this assignment are: (1) Implement your FCS design with high-quality code and thorough unit tests (2) Gain experience doing a task breakdown (3) Gain experience
More informationSoftware Security. Case Study: Java 2 Security. Copyright of HeathWallace 2008
Software Security Case Study: Java 2 Security 1 Agenda About Us Objectives Introduction Foundations of Java 2 Security Tools and APIs Conclusion 2 About Us 3 About HeathWallace Dominant supplier of online
More informationPace University. Fundamental Concepts of CS121 1
Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction
More informationPublic Key Enabling Oracle Weblogic Server
DoD Public Key Enablement (PKE) Reference Guide Public Key Enabling Oracle Weblogic Server Contact: dodpke@mail.mil URL: http://iase.disa.mil/pki-pke URL: http://iase.disa.smil.mil/pki-pke Public Key Enabling
More informationObject Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming
Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in
More informationCompSci 125 Lecture 02
Assignments CompSci 125 Lecture 02 Java and Java Programming with Eclipse! Homework:! http://coen.boisestate.edu/jconrad/compsci-125-homework! hw1 due Jan 28 (MW), 29 (TuTh)! Programming:! http://coen.boisestate.edu/jconrad/cs125-programming-assignments!
More informationExceptions. References. Exceptions. Exceptional Conditions. CSE 413, Autumn 2005 Programming Languages
References Exceptions "Handling Errors with Exceptions", Java tutorial http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html CSE 413, Autumn 2005 Programming Languages http://www.cs.washington.edu/education/courses/413/05au/
More informationSingle Sign-On for PCF. User's Guide
Single Sign-On for PCF Version 1.2 User's Guide 2018 Pivotal Software, Inc. Table of Contents Table of Contents Single Sign-On Overview Installation Getting Started with Single Sign-On Manage Service Plans
More informationOPC UA Configuration Manager PTC Inc. All Rights Reserved.
2017 PTC Inc. All Rights Reserved. 2 Table of Contents 1 Table of Contents 2 4 Overview 4 5 Project Properties - OPC UA 5 Server Endpoints 7 Trusted Clients 9 Discovery Servers 10 Trusted Servers 11 Instance
More informationExceptions. CSE 142, Summer 2002 Computer Programming 1.
Exceptions CSE 142, Summer 2002 Computer Programming 1 http://www.cs.washington.edu/education/courses/142/02su/ 12-Aug-2002 cse142-19-exceptions 2002 University of Washington 1 Reading Readings and References»
More informationExceptions. Readings and References. Exceptions. Exceptional Conditions. Reading. CSE 142, Summer 2002 Computer Programming 1.
Readings and References Exceptions CSE 142, Summer 2002 Computer Programming 1 http://www.cs.washington.edu/education/courses/142/02su/ Reading» Chapter 18, An Introduction to Programming and Object Oriented
More informationCS 1653: Applied Cryptography and Network Security Fall Term Project, Phase 2
CS 1653: Applied Cryptography and Network Security Fall 2017 Term Project, Phase 2 Assigned: Tuesday, September 12 Due: Tuesday, October 3, 11:59 PM 1 Background Over the course of this semester, we will
More informationGoogle Plugin for Eclipse
Google Plugin for Eclipse Not just for newbies anymore Miguel Mendez Tech Lead - Google Plugin for Eclipse 1 Overview Background AJAX Google Web Toolkit (GWT) App Engine for Java Plugin Design Principles
More informationRules and syntax for inheritance. The boring stuff
Rules and syntax for inheritance The boring stuff The compiler adds a call to super() Unless you explicitly call the constructor of the superclass, using super(), the compiler will add such a call for
More informationConfiguring Certificate Authorities and Digital Certificates
CHAPTER 43 Configuring Certificate Authorities and Digital Certificates Public Key Infrastructure (PKI) support provides the means for the Cisco MDS 9000 Family switches to obtain and use digital certificates
More informationSecurity Vulnerability Notice
Security Vulnerability Notice SE-2012-01-ORACLE-11 [Security vulnerabilities in Java SE, Issues 56-60] DISCLAIMER INFORMATION PROVIDED IN THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
More informationCertified Core Java Developer VS-1036
VS-1036 1. LANGUAGE FUNDAMENTALS The Java language's programming paradigm is implementation and improvement of Object Oriented Programming (OOP) concepts. The Java language has its own rules, syntax, structure
More informationOKTA users provisioning for Vable platform
OKTA users provisioning for Vable platform Features Requirements Step-by-step Configuration Instructions Requesting Vable OKTA integration Adding Vable private application to organization account Configuring
More informationLogi Ad Hoc Reporting System Administration Guide
Logi Ad Hoc Reporting System Administration Guide Version 12 July 2016 Page 2 Table of Contents INTRODUCTION... 4 APPLICATION ARCHITECTURE... 5 DOCUMENT OVERVIEW... 6 GENERAL USER INTERFACE... 7 CONTROLS...
More informationClass, Variable, Constructor, Object, Method Questions
Class, Variable, Constructor, Object, Method Questions http://www.wideskills.com/java-interview-questions/java-classes-andobjects-interview-questions https://www.careerride.com/java-objects-classes-methods.aspx
More informationIdentity Provider for SAP Single Sign-On and SAP Identity Management
Implementation Guide Document Version: 1.0 2017-05-15 PUBLIC Identity Provider for SAP Single Sign-On and SAP Identity Management Content 1....4 1.1 What is SAML 2.0.... 5 SSO with SAML 2.0.... 6 SLO with
More informationINCOMMON FEDERATION: PARTICIPANT OPERATIONAL PRACTICES
INCOMMON FEDERATION: PARTICIPANT OPERATIONAL PRACTICES Participation in the InCommon Federation ( Federation ) enables a federation participating organization ("Participant") to use Shibboleth identity
More informationCoveo Platform 7.0. EMC Documentum Connector Guide
Coveo Platform 7.0 EMC Documentum Connector Guide Notice The content in this document represents the current view of Coveo as of the date of publication. Because Coveo continually responds to changing
More informationINSTRUCTIONS TO CANDIDATES
NATIONAL UNIVERSITY OF SINGAPORE SCHOOL OF COMPUTING MIDTERM ASSESSMENT FOR Semester 2 AY2017/2018 CS2030 Programming Methodology II March 2018 Time Allowed 90 Minutes INSTRUCTIONS TO CANDIDATES 1. This
More informationLabels and Information Flow
Labels and Information Flow Robert Soulé March 21, 2007 Problem Motivation and History The military cares about information flow Everyone can read Unclassified Few can read Top Secret Problem Motivation
More informationBOF 2.0 and Web Services
BOF 2.0 and Web Services David Folk Product Manager Developer Conference 2004 San Ramon, CA 1 Agenda Quick Review BOF 2.0 Concepts & Benefits Q&A Web Services Framework Concepts & Benefits Roadmap Demo
More informationCanadian Access Federation: Trust Assertion Document (TAD)
Participant Name: Lynda.com Canadian Access Federation: Trust Assertion Document (TAD) 1. Purpose A fundamental requirement of Participants in the Canadian Access Federation is that they assert authoritative
More informationSemantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far
Outline Semantic Analysis The role of semantic analysis in a compiler A laundry list of tasks Scope Static vs. Dynamic scoping Implementation: symbol tables Types Statically vs. Dynamically typed languages
More informationOperating Systems Design Exam 3 Review: Spring 2011
Operating Systems Design Exam 3 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu 1 1. Why does an IP driver need to use ARP, the address resolution protocol? IP is a logical network. An IP address
More informationEnterprise Java Security Fundamentals
Pistoia_ch03.fm Page 55 Tuesday, January 6, 2004 1:56 PM CHAPTER3 Enterprise Java Security Fundamentals THE J2EE platform has achieved remarkable success in meeting enterprise needs, resulting in its widespread
More informationUsing the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1
Using the VMware vcenter Orchestrator Client vrealize Orchestrator 5.5.1 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments
More informationInCommon Federation: Participant Operational Practices
InCommon Federation: Participant Operational Practices Participation in the InCommon Federation ( Federation ) enables a federation participating organization ( Participant ) to use Shibboleth identity
More informationThe Java Language Implementation
CS 242 2012 The Java Language Implementation Reading Chapter 13, sections 13.4 and 13.5 Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches, pages 1 5. Outline Java virtual
More informationEMC Documentum External Viewing Services for SAP
EMC Documentum External Viewing Services for SAP Version 6.0 Installation Guide P/N 300 005 525 Rev A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright
More informationTechnical Overview. Version March 2018 Author: Vittorio Bertola
Technical Overview Version 1.2.3 26 March 2018 Author: Vittorio Bertola vittorio.bertola@open-xchange.com This document is copyrighted by its authors and is released under a CC-BY-ND-3.0 license, which
More informationCONTENT TRANSFORMATION SERVICES WITH BRANCH OFFICE CACHING SERVICES SETUP
CONTENT TRANSFORMATION SERVICES WITH BRANCH OFFICE CACHING SERVICES SETUP ABSTRACT This white paper explains how to install and configure CTS with 7.3 BOCS content server setup.this paper is organized
More informationEMC Documentum Process Integrator
EMC Documentum Process Integrator Version 6.5 Development Guide P/N 300-007-254-A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Copyright 2004-2008 EMC Corporation.
More informationOverview of Web Services API
CHAPTER 1 The Cisco IP Interoperability and Collaboration System (IPICS) 4.0(x) application programming interface (API) provides a web services-based API that enables the management and control of various
More information1. Consider the following program in a PCAT-like language.
CS4XX INTRODUCTION TO COMPILER THEORY MIDTERM EXAM QUESTIONS (Each question carries 20 Points) Total points: 100 1. Consider the following program in a PCAT-like language. PROCEDURE main; TYPE t = FLOAT;
More informationConfiguring Apache Ranger Authentication with UNIX, LDAP, or AD
3 Configuring Apache Ranger Authentication with UNIX, LDAP, or AD Date of Publish: 2018-07-15 http://docs.hortonworks.com Contents...3 Configure Ranger Authentication for UNIX... 3 Configure Ranger Authentication
More informationFinal Exam CS164, Fall 2007 Dec 18, 2007
P a g e 1 Final Exam CS164, Fall 2007 Dec 18, 2007 Please read all instructions (including these) carefully. Write your name, login, and SID. No electronic devices are allowed, including cell phones used
More informationBare Timestamp Signatures with WS-Security
Bare Timestamp Signatures with WS-Security Paul Glezen, IBM Abstract This document is a member of the Bare Series of WAS topics distributed in both stand-alone and in collection form. The latest renderings
More informationCSE331: Introduction to Networks and Security. Lecture 26 Fall 2004
CSE331: Introduction to Networks and Security Lecture 26 Fall 2004 Announcements Midterm 2 will be Monday, Nov. 15 th. Covers material since midterm 1 Today: Java/C# access control model CSE331 Fall 2004
More informationCanadian Access Federation: Trust Assertion Document (TAD)
Purpose A fundamental requirement of Participants in the Canadian Access Federation is that they assert authoritative and accurate identity attributes to resources being accessed, and that Participants
More informationMac Shutdown 4.0 User Guide
! Mac Shutdown 4.0 User Guide We Make Software - TensionSoftware.com Mac Shutdown 2005-2016 Tension Software all rights reserved. Every effort has been made to ensure that the information in this manual
More informationCyber Essentials Questionnaire Guidance
Cyber Essentials Questionnaire Guidance Introduction This document has been produced to help companies write a response to each of the questions and therefore provide a good commentary for the controls
More informationLiferay Security Features Overview. How Liferay Approaches Security
Liferay Security Features Overview How Liferay Approaches Security Table of Contents Executive Summary.......................................... 1 Transport Security............................................
More informationVMware Identity Manager Connector Installation and Configuration (Legacy Mode)
VMware Identity Manager Connector Installation and Configuration (Legacy Mode) VMware Identity Manager This document supports the version of each product listed and supports all subsequent versions until
More informationKaseya 2. Quick Start Guide. for Network Monitor 4.1
Kaseya 2 Router Monitor Quick Start Guide for Network Monitor 4.1 June 5, 2012 About Kaseya Kaseya is a global provider of IT automation software for IT Solution Providers and Public and Private Sector
More informationCanadian Access Federation: Trust Assertion Document (TAD)
Purpose A fundamental requirement of Participants in the Canadian Access Federation is that they assert authoritative and accurate identity attributes to resources being accessed, and that Participants
More information