HOWTO and Express Tutorial for Privileged DFC Build 6

Size: px
Start display at page:

Download "HOWTO and Express Tutorial for Privileged DFC Build 6"

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 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 information

xcp: Custom Java Function To Access DFC IDfSession

xcp: 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 information

EMC Documentum Foundation Classes

EMC 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 information

Java 2 Security. Dean Wette Senior Software Engineer Object Computing, Inc.

Java 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 information

High Volume Server Tuning Guide

High 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 information

MarkLogic Server. Security Guide. MarkLogic 9 May, Copyright 2017 MarkLogic Corporation. All rights reserved.

MarkLogic 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 information

What 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. 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 information

EMC Documentum Composer

EMC 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 information

EMC Documentum Composer

EMC 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 information

EMC Documentum Archive Services for SAP

EMC 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 information

Java Security. Compiler. Compiler. Hardware. Interpreter. The virtual machine principle: Abstract Machine Code. Source Code

Java 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 information

The security mechanisms of Java

The 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 information

DCLI User's Guide. Data Center Command-Line Interface 2.9.1

DCLI 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 information

DCLI User's Guide. Data Center Command-Line Interface

DCLI 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 information

A web-based IDE for Java

A 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 information

IBD Intergiciels et Bases de Données

IBD 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 information

VIRTUAL GPU LICENSE SERVER VERSION , , AND 5.1.0

VIRTUAL 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 information

A. It is a JMX-based monitoring tool that is accessible using Documentum Administrator.

A. 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 information

Info 408 Distributed Applications Programming Exercise sheet nb. 4

Info 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 information

EMC EXAM - E Content Management System Administration. Buy Full Product.

EMC 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 information

EMC Documentum Composer

EMC 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 information

DCLI User's Guide. Modified on 20 SEP 2018 Data Center Command-Line Interface

DCLI 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 information

Signicat Connector for Java Version 2.6. Document version 3

Signicat 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 information

Oracle Advanced Security: Enterprise User Management. An Oracle Technical White Paper November 1999

Oracle 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 information

Talend Component tgoogledrive

Talend 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 information

DCLI User's Guide. Data Center Command-Line Interface 2.7.0

DCLI 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 information

Administering Jive Mobile Apps for ios and Android

Administering 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 information

Coveo Platform 7.0. Oracle UCM Connector Guide

Coveo 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 information

CIS 551 / TCOM 401 Computer and Network Security. Spring 2007 Lecture 4

CIS 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 information

Java 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. 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 information

Nasuni Data API Nasuni Corporation Boston, MA

Nasuni 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 information

Server Extensions Developer Guide

Server 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 information

Using the Horizon vrealize Orchestrator Plug-In

Using 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 information

EMC Documentum Process Builder

EMC 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 information

Security Policy File Best Practices For Your Java/JDBC Modules

Security 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 information

Code Reuse: Inheritance

Code 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 information

Nested 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 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 information

Operating Systems Design Exam 3 Review: Spring Paul Krzyzanowski

Operating 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 information

Nasuni Data API Nasuni Corporation Boston, MA

Nasuni 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 information

ClientNet. Portal Admin Guide

ClientNet. 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 information

Identity-based Access Control

Identity-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 information

Checked and Unchecked Exceptions in Java

Checked 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 information

BEAAquaLogic. Service Bus. Interoperability With EJB Transport

BEAAquaLogic. 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 information

Send documentation comments to

Send 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 information

Canadian Access Federation: Trust Assertion Document (TAD)

Canadian 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

Addressing Security In The Eclipse Core Runtime (RCP)

Addressing 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 information

Assertions and Exceptions Lecture 11 Fall 2005

Assertions 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 information

KAIST Graduate School of Information Security SAR(Security Analysis Report)

KAIST 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 information

Distributed Computing Environment (DCE)

Distributed 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 information

HOMELESS 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 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 information

This assignment requires that you complete the following tasks (in no particular order).

This 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 information

Software Security. Case Study: Java 2 Security. Copyright of HeathWallace 2008

Software 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 information

Pace University. Fundamental Concepts of CS121 1

Pace 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 information

Public Key Enabling Oracle Weblogic Server

Public 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 information

Object Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming

Object 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 information

CompSci 125 Lecture 02

CompSci 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 information

Exceptions. References. Exceptions. Exceptional Conditions. CSE 413, Autumn 2005 Programming Languages

Exceptions. 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 information

Single Sign-On for PCF. User's Guide

Single 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 information

OPC UA Configuration Manager PTC Inc. All Rights Reserved.

OPC 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 information

Exceptions. CSE 142, Summer 2002 Computer Programming 1.

Exceptions. 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 information

Exceptions. Readings and References. Exceptions. Exceptional Conditions. Reading. CSE 142, Summer 2002 Computer Programming 1.

Exceptions. 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 information

CS 1653: Applied Cryptography and Network Security Fall Term Project, Phase 2

CS 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 information

Google Plugin for Eclipse

Google 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 information

Rules and syntax for inheritance. The boring stuff

Rules 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 information

Configuring Certificate Authorities and Digital Certificates

Configuring 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 information

Security Vulnerability Notice

Security 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 information

Certified Core Java Developer VS-1036

Certified 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 information

OKTA users provisioning for Vable platform

OKTA 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 information

Logi Ad Hoc Reporting System Administration Guide

Logi 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 information

Class, Variable, Constructor, Object, Method Questions

Class, 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 information

Identity Provider for SAP Single Sign-On and SAP Identity Management

Identity 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 information

INCOMMON FEDERATION: PARTICIPANT OPERATIONAL PRACTICES

INCOMMON 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 information

Coveo Platform 7.0. EMC Documentum Connector Guide

Coveo 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 information

INSTRUCTIONS TO CANDIDATES

INSTRUCTIONS 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 information

Labels and Information Flow

Labels 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 information

BOF 2.0 and Web Services

BOF 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 information

Canadian Access Federation: Trust Assertion Document (TAD)

Canadian 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 information

Semantic Analysis. Outline. The role of semantic analysis in a compiler. Scope. Types. Where we are. The Compiler so far

Semantic 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 information

Operating Systems Design Exam 3 Review: Spring 2011

Operating 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 information

Enterprise Java Security Fundamentals

Enterprise 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 information

Using the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1

Using 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 information

InCommon Federation: Participant Operational Practices

InCommon 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 information

The Java Language Implementation

The 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 information

EMC Documentum External Viewing Services for SAP

EMC 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 information

Technical Overview. Version March 2018 Author: Vittorio Bertola

Technical 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 information

CONTENT TRANSFORMATION SERVICES WITH BRANCH OFFICE CACHING SERVICES SETUP

CONTENT 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 information

EMC Documentum Process Integrator

EMC 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 information

Overview of Web Services API

Overview 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 information

1. Consider the following program in a PCAT-like language.

1. 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 information

Configuring Apache Ranger Authentication with UNIX, LDAP, or AD

Configuring 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 information

Final Exam CS164, Fall 2007 Dec 18, 2007

Final 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 information

Bare Timestamp Signatures with WS-Security

Bare 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 information

CSE331: Introduction to Networks and Security. Lecture 26 Fall 2004

CSE331: 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 information

Canadian Access Federation: Trust Assertion Document (TAD)

Canadian 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

Mac Shutdown 4.0 User Guide

Mac 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 information

Cyber Essentials Questionnaire Guidance

Cyber 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 information

Liferay Security Features Overview. How Liferay Approaches Security

Liferay Security Features Overview. How Liferay Approaches Security Liferay Security Features Overview How Liferay Approaches Security Table of Contents Executive Summary.......................................... 1 Transport Security............................................

More information

VMware Identity Manager Connector Installation and Configuration (Legacy Mode)

VMware 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 information

Kaseya 2. Quick Start Guide. for Network Monitor 4.1

Kaseya 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 information

Canadian Access Federation: Trust Assertion Document (TAD)

Canadian 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