Customizing the Security Architecture
|
|
|
- Candice Hall
- 10 years ago
- Views:
Transcription
1 Chapter7.fm Page 113 Wednesday, April 30, :29 PM CHAPTER7 Customizing the Security Architecture The office of government is not to confer happiness, but to give men opportunity to work out happiness for themselves. William Ellery Channing This chapter demonstrates ways to augment the security architecture. We explain how to develop custom implementations of the various security classes that support either extensibility or substitution mechanisms. We also describe the mechanics of implementing a custom Permission class, extending the functionality of the SecurityManager class, implementing a custom Policy provider, and implementing a DomainCombiner interface. 7.1 Creating New Permission Types Recall from Section 5.1 that J2SDK 1.2 introduced a new hierarchy of typed and parameterized access permissions, rooted by an abstract class, java.security.permission. Other permissions are subclassed from either the Permission class or one of its subclasses and appear in relevant packages. For example, the FilePermission permission representing file system access is located in the java.io package. Other permission classes are java.net.socketpermission for access to network resources java.lang.runtimepermission for access to runtime system resources, such as class loaders and threads 113
2 Chapter7.fm Page 114 Wednesday, April 30, :29 PM 114 Chapter 7 Customizing the Security Architecture java.lang.propertypermission for access to system properties java.awt.awtpermission for access to windowing resources As this list illustrates, accesses to controlled resources, including properties and packages, are represented by the permission classes. Applications are free to add new categories of permissions. However, it is essential that, apart from official releases, no one extend the permissions that are built into the SDK, either by adding new functionality or by introducing additional keywords into a class such as java.lang.runtimepermission. Refraining from doing this maintains compatibility. When creating a new permission, it is advisable also to declare the permission to be final. The rule of thumb is that if the permission will be granted in a security policy, it is probably best to declare it final. However, at times it may be necessary to create a class hierarchy for your custom permission. If this is the case, a couple of design heuristics are worth mentioning. First, if the abstract, or base, class of your permission or permission collection has a concrete implementation of the implies method, it is recommended that the implies method take the type of the permissions into consideration. For example, the implies method of the BasicPermission class has the following logic, which is similar to that of the BasicPermissionCollection class: public boolean implies(permission permission) { if (! (permission instanceof BasicPermission)) return false; BasicPermission bp = (BasicPermission) permission; if (bp.getclass()!= this.getclass()) return false; Pay particular attention to the second if statement, which enforces the type equality heuristic. Without this, the implementation may be exposed to a subtle security hole whereby the subclass may be able to interact in malicious ways with the superclass s implication checking. The second design heuristic addresses whether a custom PermissionCollection class should be implemented. The general principle is that if the permission has complex processing semantics for either its name or the actions it specifies, it is usually necessary to create a custom PermissionCollection class. The Java security architecture specifically enables this by first delegating to the permission collection object for processing of a requisite permission when making a policy decision.
3 Chapter7.fm Page 115 Wednesday, April 30, :29 PM 7.1 Creating New Permission Types 115 Perhaps these guidelines are best shown by an example. Suppose that you are an application developer from company MyPVR and want to create a customized permission to control access to the channel programming features of a personal video recorder. Further suppose that only three actions are to be controlled for any given channel of programming: the ability to "view", to "preview", and to "record". The first question is, can you use an existing Permission object, such as the BasicPermission class, or do you need a custom permission class? Given the need to be able to control access based on the three actions, the BasicPermission class will not suffice. Therefore, a custom class needs to be designed. Next, you must make sure that the implies method, among other methods, is correctly implemented. If you decide to support more elaborate channel-naming syntax for PVRPermissions, such as 1 10:13 20 or *, you may need to implement a custom permission collection class, PVRPermissionCollection. This custom class would be responsible for parsing the names and ensuring the proper semantics. Additionally, it may be necessary to perform the implies logic entirely within the implementation supplied by the permission collection. An example of when this is necessary is when the actions of a permission can be granted separately but tested in combination. For example, you may have two separate grants of a PVRPermission specified by the security policy: one for "view" and one for "preview", yet the resource management code tests for them in combination, perhaps as an optimization. That is, in order to be able to "preview" a channel, one must also have the permission to "view" the channel. Here are parts of the code for sample com.mypvr.pvrpermission and com.mypvr.pvrpermissioncollection classes: public final class com.mypvr.pvrpermission extends java.security.basicpermission implements java.io.serializable { /* view channel */ private final static int VIEW = 0x1; /* preview a channel */ private final static int PREVIEW = 0x2; /* record a channel */ private final static int RECORD = 0x4; /* all actions */ private final static int ALL = VIEW PREVIEW RECORD; /* the channel number */ private transient String channel; /* the actions mask */ private transient int actionmask;
4 Chapter7.fm Page 116 Wednesday, April 30, :29 PM 116 Chapter 7 Customizing the Security Architecture public PVRPermission(String channel, String actions) { super(channel, actions); this.channel = channel; this.actionmask = getmask(actions) // parse actions /* for completeness we implement implies but given the usage pattern the real work will be done in the permission collection */ public boolean implies(permission p) { if (!(p instanceof PVRPermission)) return false; PVRPermission that = (PVRPermission) p; if (this.channel.equals(that.channel) && this.actions.equals(that.actions)) return true; return false; public PermissionCollection newpermissioncollection() { return new PVRPermissionCollection(); final class PVRPermissionCollection extends PermissionCollection implements java.io.serializable { private Vector permissions; public PVRPermissionCollection() { permissions = new Vector(); public boolean implies(permission permission) { if (! (permission instanceof PVRPermission)) return false; PVRPermission np = (PVRPermission) permission; int desired = np.getmask(); int effective = 0; int needed = desired; Enumeration e = permissions.elements();
5 Chapter7.fm Page 117 Wednesday, April 30, :29 PM 7.1 Creating New Permission Types 117 while (e.hasmoreelements()) { PVRPermission x = (PVRPermission) e.nextelement(); if (x.channel.equals(np.channel)) { if ((needed & x.getmask())!= 0) { effective = x.getmask(); if ((effective & desired) == desired) return true; needed = (desired ^ effective); return false; Next, you want the application s resource management code, when checking whether an access should be granted, to call SecurityManager s checkpermission method, using an instance of com.mypvr.pvrpermission as the parameter public void previewchannel(int channel) { // in order to preview the channel you also need to be able // to view the channel com.mypvr.pvrpermission tvperm = new com.mypvr.pvrpermission(integer.tostring(channel), "view,preview"); SecurityManager security = System.getSecurityManager(); if (security!= null) { security.checkpermission(tvperm); Finally, to grant this permission to applications and applets, you need to enter appropriate entries into the security policy. How to configure the policy is discussed in detail in Section Basically, you put the string representation of this permission in the policy file so that this permission can be automatically configured for each domain granted the permission. An example of the policy file entry specifying permission for the user "Duke" to watch channel 5 is as follows, which grants to any code considered to be executed by "Duke" the privilege to view and preview channel 5:
6 Chapter7.fm Page 118 Wednesday, April 30, :29 PM 118 Chapter 7 Customizing the Security Architecture grant principal javax.security.auth.x500.x500principal "cn=duke"{ permission com.mypvr.pvrpermission "5", "view"; permission com.mypvr.pvrpermission "5", "preview"; To exercise the built-in access control algorithm, our code would typically invoke a permission check by directly calling the checkpermission method of the SecurityManager class, as shown. Generally, it is best to start up the access control machinery by calling the SecurityManager.checkPermission method as demonstrated. The default implementation of SecurityManager.checkPermission delegates to the AccessController. However, should a custom SecurityManager class be installed, there is no guarantee that the AccessController.checkPermission method will ever be invoked. Details of these classes are provided in Chapter 6, and the question of when to use Access- Controller versus SecurityManager is discussed in Section Customizing Security Policy The security policy is first processed by the Policy object and then is enforced by the SecurityManager or AccessController, so customizing any of these classes would customize the behavior of the security policy. Beginning with J2SE 1.4, security policy decisions are lazily evaluated; prior to J2SE 1.4, security policy decisions were in effect statically computed in advance of enforcement. This section provides general descriptions of the various ways the policy enforcement and decision machinery can be augmented to supply specialized behavior. We first describe the extension points of the SecurityManager and then give guidance in implementing a custom Policy provider Customizing Security Policy Enforcement As a first example, suppose that you want to allow file access only during office hours: 9 A.M. to 5 P.M. That is, during office hours, the security policy decides who can access what files. Outside of office hours, no one can access any file, no matter what the security policy says. To achieve this, you can implement a Time- OfDaySecurityManager class, as follows: public class TimeOfDaySecurityManager extends SecurityManager { public void checkpermission(permission perm) { if (perm instanceof FilePermission) { Date d = new Date(); int i = d.gethours();
7 Chapter7.fm Page 119 Wednesday, April 30, :29 PM 7.2 Customizing Security Policy 119 if ((i >= 9) && (i < 17)) super.checkpermission(perm); else throw new SecurityException("Outside of office hours"); else super.checkpermission(perm); The TimeOfDaySecurityManager checkpermission method checks whether the permission to be checked is a FilePermission. If it is, checkpermission computes the current time. If the time is within office hours, checkpermission invokes the checkpermission method from TimeOfDaySecurityManager s SecurityManager superclass to check the security policy. Otherwise, check- Permission throws a security exception. An application that wishes to enforce the given office hour restriction should install this TimeOfDaySecurityManager in place of the built-in SecurityManager. A SecurityManager is installed by calling the java.lang.system.setsecuritymanager method, as described in Section The next example concerns the need to keep a record of resource accesses that were granted or denied, for audit purposes later. Suppose that you design a simple AuditSecurityManager class as follows: public class AuditSecurityManager extends SecurityManager { private static java.util.logging.logger logger = java.util.logging.logger.getlogger("auditsecuritymanager"); public void checkpermission(permission perm) { logger.log(java.util.logging.level.info, perm.tostring()); super.checkpermission(perm); This class assumes that you also have an instance of the java.util.logging.logger class, whose log method records permission checks in a safe place. In this example, the log method simply records the fact that a particular permission was checked. A variation would be to enter the audit record after checkpermission and specify a different logging level, contingent on the result of the access control decision. If the checkpermission call succeeds, the log method is called right after the super.checkpermission call, with a level of INFO. If the call fails, a SecurityException is thrown, and the AuditSecurityManager checkpermission catches the SecurityException, calls the
8 Chapter7.fm Page 120 Wednesday, April 30, :29 PM 120 Chapter 7 Customizing the Security Architecture log method with a level of WARNING to indicate the failure, and then rethrows the exception, as follows: public class AuditSecurityManager extends SecurityManager {... public void checkpermission(permission perm) { try { super.checkpermission(perm); logger.log(java.util.logging.level.info, perm.tostring()); catch (SecurityException e) { logger.log(java.util.logging.level.warning, perm.tostring()); throw e; To implement complex security policies, you potentially need to spend more effort in the design. For example, if you wanted to enforce a multilevel security policy, you would first have to create sensitivity labels for each object. 1 The JVM would also have to keep track of the interaction between objects and might have to change object labels dynamically, as in a High-Watermark model. Then the SecurityManager s checkpermission method would need to base its decision on the labels of the objects involved in the current thread of execution. As another example, to implement a Chinese Wall, or separation-of-duty, model, the JVM would need not only to monitor object interaction but also to keep a history of it. Much research and experimentation is needed in this area Customizing Security Policy Decisions The wide variety of reasons for designing and implementing a custom Policy provider run the gamut from the need to support a specialized policy expression language to the need to support a custom policy store. An example might be a Policy provider that specifies policy according to the syntax and processing rules of KeyNote [14]. We introduced the role and structure of the Policy class in Section 5.4. In this section, we illustrate quintessential and sometimes subtle design details necessary to implement a Policy provider correctly. 1 This could be done perhaps most conveniently by adding a security level attribute to the base class, the Object class, but that would be a very significant change.
9 Chapter7.fm Page 121 Wednesday, April 30, :29 PM 7.2 Customizing Security Policy 121 Locating Security Policy When we designed the Java security policy interface, we recognized that it would be nearly impossible to specify adequately the storage and access requirements of security policy or the language by which security policy was expressed. Therefore, we incorporated two key abstractions in our design. The first is the notion of a pluggable provider, which is a standardized mechanism fully documented in Section The second, location independence of the policy store, is not part of the Java platform specification, yet most platform vendors have adopted Sun s model. Our approach to referencing the policy store is to leverage the inherent generality and location independence Uniform Resource Locators (URLs) provide. Usually, the deployment of the Java runtime is managed by a system administrator. At deployment time, the administrator has the latitude of changing the configuration of the Java runtime to point to the location of the security policy data. This change can be statically reflected in the security properties file, or it can be specified when the runtime is started, by specifying a URL value for the java.security.policy system property. This is described in much greater detail in Section For purposes of this discussion, the salient point is that it is imperative for a Policy provider implementation to follow the directions of the deployer when locating and accessing the policy data. That is, a proper implementation will follow the hints given by the values for the policy.url.n properties in the security properties file, as well as the mechanism to override or augment security policy via the system property java.security.policy. The first thing to consider is whether the deployment permits the override of the security policy location via the java.security.policy system property. This is captured in the policy.allowsystemproperty security property: if ("true".equalsignorecase (Security.getProperty("policy.allowSystemProperty"))) { // process the override URL. else { Next, assuming that the location can be overridden by the java.security.policy system property, determine whether the supplied URL is to be used in conjunction with the statically configured URLs or whether it is to be considered as the sole source of policy data. The former is indicated by preceding the specified location with an = sign, whereas the latter is indicated by preceding the specified location with a double equals (==). For example, specifying the following
10 Chapter7.fm Page 122 Wednesday, April 30, :29 PM 122 Chapter 7 Customizing the Security Architecture system property as a subpart of the command line invoking the Java runtime indicates that the policy at the given URL should be the only source of policy data: -Djava.security.policy== Bootstrapping Security Policy When we designed the Policy provider architecture, one of our design goals was to enable the installation of third-party security policy implementations. We also wanted to give deployers flexibility in installing and configuring the Java runtime environment. Section 12.4 details configuring and installing provider packages. As described in Chapter 12, the security Policy provider class can be statically configured to be the default provider. One advantage of statically configuring the default security provider is to avoid having to implement application code that dynamically installs the Policy provider by invoking the setpolicy method of the Policy class. Generally, system or infrastructure software of this caliber is installed as an optional package [101]. However, by installing the Policy provider as an installed extension, the implementation of the Policy provider is faced with a chicken-and-egg problem. And by statically configuring the systemwide security policy class, the Java runtime is confronted with a chicken-and-egg problem of its own. Let s consider the runtime s problem first. The Java runtime must be able to install a security Policy provider that is not part of the system domain. However, code that is outside the system domain is subject to security checks by the SecurityManager or AccessController. Therefore, how can the runtime enforce policy while in the process of installing the Policy provider? It is possible for the Java runtime to detect this conundrum by being selective as to which class loader is used to install the Policy provider. Once this recursion is detected, it is possible to bootstrap the installation of the configured Policy provider by relying on the Java platform vendor s default Policy implementation class. Once the configured provider is loaded, it can be installed as the systemwide Policy provider. The deployer may need to realize that the platform vendor s default policy must be configured to grant the thirdparty Policy provider sufficient permissions to be bootstrapped in this manner. This approach is by no means foolproof, given that the third-party implementation may trigger class loads and subsequent security checks of utility classes outside the system domain or its own protection domain. The second circularity problem exists regardless of whether the security Policy provider is configured statically or installed dynamically. Again because the Policy provider is not part of the system domain, it is subject to security checks. Because access control decisions are passing through the Policy implementation
11 Chapter7.fm Page 123 Wednesday, April 30, :29 PM 7.2 Customizing Security Policy 123 via either the getpermissions method or the implies method, the Policy class s protection domain will be under scrutiny whenever it triggers a security check. A rather rudimentary solution a Policy implementation can use is to cache a reference to its own protection domain within its constructor. Then whenever its getpermissions or implies method is invoked, the Policy implementation can treat its protection domain specially and assume it to have sufficient permission to access the resource. In other words, it is probably fair to assume that the Policy implementation has been granted AllPermission. Here is some sample code from the Policy implementation class: // Domain of this provider private ProtectionDomain providerdomain; public CustomPolicy() { final Object p = this; providerdomain = (ProtectionDomain) AccessController.doPrivileged( new java.security.privilegedaction() { public Object run() { return p.getclass().getprotectiondomain(); ); public boolean implies(protectiondomain pd, Permission p) { if (providerdomain == pd) { return true; public PermissionCollection getpermissions(protectiondomain domain) { Permissions perms = new Permissions();
12 Chapter7.fm Page 124 Wednesday, April 30, :29 PM 124 Chapter 7 Customizing the Security Architecture if (providerdomain == domain) { perms.add(new java.security.allpermission()); Some words of caution: If the Policy implementation is packaged with less trusted code and both are in the same protection domain, the less trusted code will be accorded the same permissions as the Policy implementation. Also, a call to the refresh method should be careful not to drop the cached protection domain. Spanning Permissions In Section 5.6, we introduced the merits of dynamic policy and alluded to the spanning permission problem. We also described this issue in Section 7.1. Essentially, the issue can be stated as follows: A Policy provider must be able to accommodate a policy decision query through its implies interface to determine whether a requisite permission is implied by the given protection domain. This must be derived even when the actions of the requisite permission span the permission collection encapsulated by the ProtectionDomain and Policy objects. In our sample PVRPermissionCollection implementation, we made special provisions for the advent of this when the actions of the requisite permission were specified in separate grant statements. The same problem exists for the Policy provider, as the class loader may assign permissions to the ProtectionDomain of a class, and the provisioning of the security policy may also specify permissions of the same type and target but for different actions. The simplest approach is for the Policy provider to merge the permissions from the protection domain with the permissions it deems are granted by the policy for the given ProtectionDomain into a single PermissionCollection. The obvious place to implement this merge is in the getpermissions method of the Policy class. 7.3 Customizing the Access Control Context When we first introduced the DomainCombiner in Section 6.3, we described the API and the relationship of a DomainCombiner to the access control machinery. The remainder of this chapter describes possible uses for a DomainCombiner and implementation strategies. We may use the term combiner as a shorthand for DomainCombiner. Two steps must be taken to insert a combiner into the access control machinery of the Java runtime environment. The first is to construct an AccessControl- Context with an instance of a DomainCombiner. The second step is to bind the
13 Chapter7.fm Page 125 Wednesday, April 30, :29 PM 7.3 Customizing the Access Control Context 125 security context with the execution context. This is accomplished by supplying the AccessControlContext to the appropriate AccessController doprivileged method. A real-world application of a DomainCombiner is the javax.security.auth.subjectdomaincombiner. This particular implementation encapsulates an instance of a javax.security.auth.subject. As described in Section 8.4.1, a Subject encapsulates a set of (ostensibly authenticated) principals. The role of the SubjectDomainCombiner is to augment the ProtectionDomains of the current execution context with the principal information so that security policy can be based on who is running the code. The combine method of a bound DomainCombiner is invoked as a result of a call to either the checkpermission or the getcontext AccessController method. In the absence of a DomainCombiner, the AccessController optimizes the AccessControlContext object. When a DomainCombiner is present, it is up to the implementation of the installed combiner to perform any optimizations on the AccessControlContext returned from the combine method. That said, another possible application for a DomainCombiner is one that implements special optimizations. For example, suppose that the DomainCombiner encapsulated principal information analogous to the SubjectDomainCombiner. Additionally, the custom combiner makes special provisions for the administrative principal such that it is accorded AllPermission. Such a combiner can make a significant optimization to the AccessControlContext when it detects that it is executing as the administrative principal. One possibility is for the combiner to return an Access- ControlContext with a single ProtectionDomain; in that case, the PermissionCollection encapsulated within the ProtectionDomain would include an instance of the AllPermission permission.
14 Chapter7.fm Page 126 Wednesday, April 30, :29 PM
JAAS Java Authentication and Authorization Services
JAAS Java Authentication and Authorization Services Bruce A Rich Java Security Lead IBM/Tivoli Systems Java is a trademark and Java 2 is a registered trademark of Sun Microsystems Inc. Trademarks Java,
KAIST Cyber Security Research Center SAR(Security Analysis Report) Date. August 31, Modified
Document # Type Attack Trend Technical Analysis Specialty Analysis Title Date Modified Java Applet Vulnerability Analysis (CVE-2012-4681) August 25, KAIST Graduate School 2012 of Information Security Author
Checking Access to Protected Members in the Java Virtual Machine
Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/
Using jlock s Java Authentication and Authorization Service (JAAS) for Application-Level Security
Using jlock s Java Authentication and Authorization Service (JAAS) for Application-Level Security Introduction Updated January 2006 www.2ab.com Access management is a simple concept. Every business has
Java Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Using XACML Policies as OAuth Scope
Using XACML Policies as OAuth Scope Hal Lockhart Oracle I have been exploring the possibility of expressing the Scope of an OAuth Access Token by using XACML policies. In this document I will first describe
A Meeting Room Scheduling Problem
A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 [email protected] http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
The Sun Certified Associate for the Java Platform, Standard Edition, Exam Version 1.0
The following applies to all exams: Once exam vouchers are purchased you have up to one year from the date of purchase to use it. Each voucher is valid for one exam and may only be used at an Authorized
Java Programming Language
Lecture 1 Part II Java Programming Language Additional Features and Constructs Topics in Quantitative Finance: Numerical Solutions of Partial Differential Equations Instructor: Iraj Kani Subclasses and
Logging in Java Applications
Logging in Java Applications Logging provides a way to capture information about the operation of an application. Once captured, the information can be used for many purposes, but it is particularly useful
Database Application Developer Tools Using Static Analysis and Dynamic Profiling
Database Application Developer Tools Using Static Analysis and Dynamic Profiling Surajit Chaudhuri, Vivek Narasayya, Manoj Syamala Microsoft Research {surajitc,viveknar,manojsy}@microsoft.com Abstract
Java (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk
CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling
Integrating Formal Models into the Programming Languages Course
Integrating Formal Models into the Programming Languages Course Allen B. Tucker Robert E. Noonan Computer Science Department Computer Science Department Bowdoin College College of William and Mary Brunswick,
DIPLOMADO DE JAVA - OCA
DIPLOMADO DE JAVA - OCA TABLA DE CONTENIDO INTRODUCCION... 3 ESTRUCTURA DEL DIPLOMADO... 4 Nivel I:... 4 Fundamentals of the Java Programming Language Java SE 7... 4 Introducing the Java Technology...
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
bbc Developing Service Providers Adobe Flash Media Rights Management Server November 2008 Version 1.5
bbc Developing Service Providers Adobe Flash Media Rights Management Server November 2008 Version 1.5 2008 Adobe Systems Incorporated. All rights reserved. Adobe Flash Media Rights Management Server 1.5
Database Security Guide
Institutional and Sector Modernisation Facility ICT Standards Database Security Guide Document number: ISMF-ICT/3.03 - ICT Security/MISP/SD/DBSec Version: 1.10 Project Funded by the European Union 1 Document
Generating Web Applications from Process Models
Generating Web Applications from Process Models Jan Schulz-Hofen, Silvan Golega Hasso-Plattner-Institute for Software Systems Engineering Prof.-Dr.-Helmert-Str. 2-3 D-14482 Potsdam, Germany {jan.schulz-hofen,
RMI Client Application Programming Interface
RMI Client Application Programming Interface Java Card 2.2 Java 2 Platform, Micro Edition Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 U.S.A. 650-960-1300 June, 2002 Copyright 2002 Sun
CS193j, Stanford Handout #10 OOP 3
CS193j, Stanford Handout #10 Summer, 2003 Manu Kumar OOP 3 Abstract Superclass Factor Common Code Up Several related classes with overlapping code Factor common code up into a common superclass Examples
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
AP Computer Science Java Subset
APPENDIX A AP Computer Science Java Subset The AP Java subset is intended to outline the features of Java that may appear on the AP Computer Science A Exam. The AP Java subset is NOT intended as an overall
Java and Java Virtual Machine Security
Java and Java Virtual Machine Security Vulnerabilities and their Exploitation Techniques by Last Stage of Delirium Research Group http://lsd-pl.net Version: 1.0.0 Updated: October 2nd, 2002 Copyright c
How to Configure Dynamic DNS on a Virtual Access Router
How to Configure Dynamic DNS on a Virtual Access Router Issue 1.0 Date 03 April 2012 Table of contents 1 About this document... 3 1.1 Scope... 3 1.2 Readership... 3 1.3 Terminology... 3 2 Introduction...
Capabilities of a Java Test Execution Framework by Erick Griffin
Capabilities of a Java Test Execution Framework by Erick Griffin Here we discuss key properties and capabilities of a Java Test Execution Framework for writing and executing discrete Java tests for testing
Safewhere*Identify 3.4. Release Notes
Safewhere*Identify 3.4 Release Notes Safewhere*identify is a new kind of user identification and administration service providing for externalized and seamless authentication and authorization across organizations.
Performance Monitoring API for Java Enterprise Applications
Performance Monitoring API for Java Enterprise Applications Purpose Perfmon4j has been successfully deployed in hundreds of production java systems over the last 5 years. It has proven to be a highly successful
Using the Caché SQL Gateway
Using the Caché SQL Gateway Version 2007.1 04 June 2007 InterSystems Corporation 1 Memorial Drive Cambridge MA 02142 www.intersystems.com Using the Caché SQL Gateway Caché Version 2007.1 04 June 2007 Copyright
CMV: Automatic Verification of Complete Mediation forjavavirtualmachines
CMV: Automatic Verification of Complete Mediation forjavavirtualmachines A. Prasad Sistla V.N.Venkatakrishnan Michelle Zhou Hilary Branske Department of Computer Science University of Illinois at Chicago
WIRIS quizzes web services Getting started with PHP and Java
WIRIS quizzes web services Getting started with PHP and Java Document Release: 1.3 2011 march, Maths for More www.wiris.com Summary This document provides client examples for PHP and Java. Contents WIRIS
Apache Derby Security. Jean T. Anderson [email protected] [email protected]
Apache Derby Security Jean T. Anderson [email protected] [email protected] Agenda Goals Understand how to take advantage of Apache Derby security features with a focus on the simplest options and configurations
Using weblock s Servlet Filters for Application-Level Security
Using weblock s Servlet Filters for Application-Level Security September 2006 www.2ab.com Introduction Access management is a simple concept. Every business has information that needs to be protected from
Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt
core. 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Volume I - Fundamentals Seventh Edition CAY S. HORSTMANN GARY
The Phases of an Object-Oriented Application
The Phases of an Object-Oriented Application Reprinted from the Feb 1992 issue of The Smalltalk Report Vol. 1, No. 5 By: Rebecca J. Wirfs-Brock There is never enough time to get it absolutely, perfectly
Java Memory Model: Content
Java Memory Model: Content Memory Models Double Checked Locking Problem Java Memory Model: Happens Before Relation Volatile: in depth 16 March 2012 1 Java Memory Model JMM specifies guarantees given by
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
Oracle WebLogic Integration
Oracle WebLogic Integration Using the WebLogic Integration Administration Console 10g Release 3 (10.3.1) January 2010 Oracle WebLogic Intergation Using the Oracle WebLogic Integration Administration Console,
Android Developer Fundamental 1
Android Developer Fundamental 1 I. Why Learn Android? Technology for life. Deep interaction with our daily life. Mobile, Simple & Practical. Biggest user base (see statistics) Open Source, Control & Flexibility
Li Gong and Roland Schemers. fgong,[email protected]. overlap, as shown in Figure 1. 1
Implementing Protection Domains in the Java TM Development Kit 1.2 Li Gong and Roland Schemers JavaSoft, Sun Microsystems, Inc. fgong,[email protected] Abstract The forthcoming Java TM Development
ITDUMPS QUESTION & ANSWER. Accurate study guides, High passing rate! IT dumps provides update free of charge in one year!
ITDUMPS QUESTION & ANSWER Accurate study guides, High passing rate! IT dumps provides update free of charge in one year! HTTP://WWW.ITDUMPS.COM Exam : 70-549(C++) Title : PRO:Design & Develop Enterprise
Java Card Applet Firewall Exploration and Exploitation
Java Card Applet Firewall Exploration and Exploitation Wojciech Mostowski and Erik Poll Digital Security Radboud University Nijmegen The Netherlands http://www.cs.ru.nl/~{woj,erikpoll}/ Introduction Study
Getting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
ODMG-api Guide. Table of contents
by Armin Waibel Table of contents 1 Introduction.2 2 Specific Metadata Settings..2 3 How to access ODMG-api.. 3 4 Configuration Properties..3 5 OJB Extensions of ODMG. 5 5.1 The ImplementationExt Interface..5
Web Service Caching Using Command Cache
Web Service Caching Using Command Cache Introduction Caching can be done at Server Side or Client Side. This article focuses on server side caching of web services using command cache. This article will
Web Application Access Control with Java SE Security
Web Application Access Control with Java SE Security Java Forum Stuttgart 2009 Jürgen Groothues Stuttgart, Agenda 1. Access Control Basics 2. The Java Authentication and Authorization Service (JAAS) 3.
CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS
66 CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS 5.1 INTRODUCTION In this research work, two new techniques have been proposed for addressing the problem of SQL injection attacks, one
Websense Support Webinar: Questions and Answers
Websense Support Webinar: Questions and Answers Configuring Websense Web Security v7 with Your Directory Service Can updating to Native Mode from Active Directory (AD) Mixed Mode affect transparent user
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
External Network & Web Application Assessment. For The XXX Group LLC October 2012
External Network & Web Application Assessment For The XXX Group LLC October 2012 This report is solely for the use of client personal. No part of it may be circulated, quoted, or reproduced for distribution
Oracle Data Integrator: Administration and Development
Oracle Data Integrator: Administration and Development What you will learn: In this course you will get an overview of the Active Integration Platform Architecture, and a complete-walk through of the steps
Redpaper Axel Buecker Kenny Chow Jenny Wong
Redpaper Axel Buecker Kenny Chow Jenny Wong A Guide to Authentication Services in IBM Security Access Manager for Enterprise Single Sign-On Introduction IBM Security Access Manager for Enterprise Single
Oracle WebLogic Server
Oracle WebLogic Server Monitoring and Managing with the Java EE Management APIs 10g Release 3 (10.3) July 2008 Oracle WebLogic Server Monitoring and Managing with the Java EE Management APIs, 10g Release
User Pass-Through Authentication in IBM Cognos 8 (SSO to data sources)
User Pass-Through Authentication in IBM Cognos 8 (SSO to data sources) Nature of Document: Guideline Product(s): IBM Cognos 8 BI Area of Interest: Security Version: 1.2 2 Copyright and Trademarks Licensed
Digital Signature Web Service Interface
1 2 Digital Signature Web Service Interface 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 1 Introduction This document describes an RPC interface for a centralized
Lecture 7: Class design for security
Lecture topics Class design for security Visibility of classes, fields, and methods Implications of using inner classes Mutability Design for sending objects across JVMs (serialization) Visibility modifiers
Affdex SDK for Android. Developer Guide For SDK version 1.0
Affdex SDK for Android Developer Guide For SDK version 1.0 www.affdex.com/mobile-sdk 1 August 4, 2014 Introduction The Affdex SDK is the culmination of years of scientific research into emotion detection,
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR Andrey V.Lyamin, State University of IT, Mechanics and Optics St. Petersburg, Russia Oleg E.Vashenkov, State University of IT, Mechanics and Optics, St.Petersburg,
Tableau Server. Permissions, Roles, and Content Authorization
Tableau Server Permissions, Roles, and Content Authorization This document covers aspects of Tableau Server authorization. 1. Permissions and authorization in the abstract 2. Real-world examples 3. Best-practices
Project Software Security: Securing SendMail with JAAS and Polymer
Project Software Security: Securing SendMail with JAAS and Polymer Frank van Vliet [email protected] Diego Ortiz Yepes [email protected] Jornt van der Wiel [email protected] Guido Kok
XPoints: Extension Interfaces for Multilayered Applications
XPoints: Extension Interfaces for Multilayered Applications Mohamed Aly, Anis Charfi, Sebastian Erdweg, and Mira Mezini Applied Research, SAP AG [email protected] Software Technology Group, TU
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
The PaperCept Journal Submission and Review Management System
The PaperCept Journal Submission and Review Management System Configuration and User Guide Huibert Kwakernaak PaperCept Inc. March 2013 1 Contents 1 Features... 1 1.1 People Database... 1 1.2 Users...
Copyright 2013 Consona Corporation. All rights reserved www.compiere.com
COMPIERE 3.8.1 SOAP FRAMEWORK Copyright 2013 Consona Corporation. All rights reserved www.compiere.com Table of Contents Compiere SOAP API... 3 Accessing Compiere SOAP... 3 Generate Java Compiere SOAP
16.1 DataFlavor. 16.1.1 DataFlavor Methods. Variables
In this chapter: DataFlavor Transferable Interface ClipboardOwner Interface Clipboard StringSelection UnsupportedFlavorException Reading and Writing the Clipboard 16 Data Transfer One feature that was
Java and Java Virtual Machine security vulnerabilities and their exploitation techniques
Java and Java Virtual Machine security vulnerabilities and their exploitation techniques by Last Stage of Delirium Research Group http://lsd-pl.net Version: 1.0 Updated: September 3 rd, 2002 Copyright
Transactionality and Fault Handling in WebSphere Process Server Web Service Invocations. version 0.5 - Feb 2011
Transactionality and Fault Handling in WebSphere Process Server Web Service Invocations version 0.5 - Feb 2011 IBM Corporation, 2011 This edition applies to Version 6.2 of WebSphere Process Server 1 /
Grundlæggende Programmering IT-C, Forår 2001. Written exam in Introductory Programming
Written exam in Introductory Programming IT University of Copenhagen, June 11, 2001 English version All materials are permitted during the exam, except computers. The exam questions must be answered in
Outline of this lecture G52CON: Concepts of Concurrency
Outline of this lecture G52CON: Concepts of Concurrency Lecture 10 Synchronisation in Java Natasha Alechina School of Computer Science [email protected] mutual exclusion in Java condition synchronisation
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 The Java Type System By now, you have seen a fair amount of Java. Time to study in more depth the foundations of the language,
Computing Concepts with Java Essentials
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann
Web Services API Developer Guide
Web Services API Developer Guide Contents 2 Contents Web Services API Developer Guide... 3 Quick Start...4 Examples of the Web Service API Implementation... 13 Exporting Warehouse Data... 14 Exporting
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
SnapLogic Salesforce Snap Reference
SnapLogic Salesforce Snap Reference Document Release: October 2012 SnapLogic, Inc. 71 East Third Avenue San Mateo, California 94401 U.S.A. www.snaplogic.com Copyright Information 2012 SnapLogic, Inc. All
Concrete uses of XML in software development and data analysis.
Concrete uses of XML in software development and data analysis. S. Patton LBNL, Berkeley, CA 94720, USA XML is now becoming an industry standard for data description and exchange. Despite this there are
GUIDE for Authentication
Web Filter USER GUIDE for Authentication Release 4.0.00 Manual Version 1.01 ii M86 SECURITY USER GUIDE M86 WEB FILTER AUTHENTICATION USER GUIDE 2010 M86 Security All rights reserved. Version 1.01, published
Checking Access to Protected Members in the Java Virtual Machine
Vol. 4, No. 8, 2005 Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio, Kestrel Institute, Palo Alto, California, USA This paper studies in detail how to correctly and efficiently
Iotivity Programmer s Guide Soft Sensor Manager for Android
Iotivity Programmer s Guide Soft Sensor Manager for Android 1 CONTENTS 2 Introduction... 3 3 Terminology... 3 3.1 Physical Sensor Application... 3 3.2 Soft Sensor (= Logical Sensor, Virtual Sensor)...
Teiid - Salesforce Connector Guide 6.2.0
Teiid - Salesforce Connector Guide 1 6.2.0 Preface... v 1. Importing Metadata... 1 1.1. Overview... 1 1.2. Running the Importer... 1 2. Using the Connector... 7 2.1. SQL Processing... 7 2.2. Selecting
Data Flow Static Code Analysis Best Practices
Data Flow Static Code Analysis Best Practices Introduction This paper examines why and how to add flow analysis to your existing testing strategies. After introducing the general concept and benefits of
CRM Setup Factory Installer V 3.0 Developers Guide
CRM Setup Factory Installer V 3.0 Developers Guide Who Should Read This Guide This guide is for ACCPAC CRM solution providers and developers. We assume that you have experience using: Microsoft Visual
Java Programming Fundamentals
Lecture 1 Part I Java Programming Fundamentals Topics in Quantitative Finance: Numerical Solutions of Partial Differential Equations Instructor: Iraj Kani Introduction to Java We start by making a few
Java SE 7 Programming
Java SE 7 Programming The second of two courses that cover the Java Standard Edition 7 (Java SE 7) Platform, this course covers the core Application Programming Interfaces (API) you will use to design
Visual Basic. murach's TRAINING & REFERENCE
TRAINING & REFERENCE murach's Visual Basic 2008 Anne Boehm lbm Mike Murach & Associates, Inc. H 1-800-221-5528 (559) 440-9071 Fax: (559) 440-0963 [email protected] www.murach.com Contents Introduction
QAD BPM Release Notes
September 2014 The release notes include information about the latest QAD BPM fixes and changes. Review this document before proceeding with any phase of a QAD BPM implementation. These release notes are
NGASI AppServer Manager SaaS/ASP Hosting Automation for Cloud Computing Administrator and User Guide
NGASI AppServer Manager SaaS/ASP Hosting Automation for Cloud Computing Administrator and User Guide NGASI SaaS Hosting Automation is a JAVA SaaS Enablement infrastructure that enables web hosting services
SQL INJECTION ATTACKS By Zelinski Radu, Technical University of Moldova
SQL INJECTION ATTACKS By Zelinski Radu, Technical University of Moldova Where someone is building a Web application, often he need to use databases to store information, or to manage user accounts. And
