Table of Contents Previous Next PDF


InterceptorData Sample Interceptors

InterceptorData Sample Interceptors
This chapter describes the following two sample interceptors that are designed to be used with the PersonQuery sample application:
InterceptorDataClient Interceptor, which is installed on the machine hosting the PersonQuery client component.
InterceptorDataTarget Interceptor, which is installed on the machine hosting the PersonQuery server component.
This chapter explains how each interceptor works, then shows how to build and run them with the PersonQuery sample application.
InterceptorDataClient Interceptor
The InterceptorDataClient interceptor intercepts and logs each client application request and reply parameters. This interceptor also allows certain operations on the PersonQuery server application to be invoked by users of the client application who meet specific criteria. The InterceptorDataClient interceptor implements the InterceptorDataClient interface, which inherits from the ClientRequestInterceptor class.
The InterceptorDataClient class implements the methods as follows:
This method returns the string InterceptorDataClient.
This method removes the request from the tracker object.
When invoked by the ORB, this method removes the request from the tracker object.
This method determines if the interface and operation are “of interest.” If the client request is “of interest,” this method parses the request parameters and outputs the parameters to the log file. If the client request is not “of interest,” this method simply returns.
This method determines if the interface and operation in the request are “of interest.” If the interface and operation are “of interest,” this method walks through the CORBA DataInputStream parameter to obtain the reply parameters and write them to the log file. If the interface and operation in the request are not “of interest,” this method simply returns.
In addition, the data interceptor provides the InterceptorDataClientInit method to initialize the client interceptor class.
InterceptorDataTarget Interceptor
The InterceptorDataTarget interceptor intercepts and logs request and reply data parameters. This interceptor also removes sensitive data from specific reply parameters by masking the data with x characters. The InterceptorDataTarget interceptor implements the InterceptorDataTarget interface, which inherits from the TargetRequestInterceptor class.
The InterceptorDataTarget class implements the methods as follows:
This method returns the string InterceptorDataTarget.
This method simply returns.
This method removes the request from the tracker object.
This method determines if the interface and operation are “of interest.” If so, this method parses the request parameters and outputs that data to the log file. If the interface and operation in the request are not “of interest,” this method simply returns. If the operation in the request is exit, this method returns the status value INVOKE_NO_EXCEPTION.
This method determines if the interface and operation are “of interest.” If so, this method walks through the DataInputStream parameter to obtain the response parameters and output to the log file. Sensitive data items are substituted in the log. For example, a person’s social security number will not be output to the log. If the interface and operation in the request are not “of interest,” this method simply returns.
In addition, the data interceptor provides the InterceptorDataTargetInit method to initialize the target interceptor class.
Implementing the InterceptorData Interceptors
Information about the code used to implement the InterceptorData interceptors is provided in Chapter 2, “Developing CORBA Request-Level Interceptors.” Refer to that chapter for information about how to do the following:
1.
2.
3.
4.
5.
6.
Registering and Running the InterceptorData Interceptors
When you run the makefile that builds the PersonQuery sample application in Chapter 4, “PersonQuery Sample Application,” the entire set of sample interceptors are built as well, including the InterceptorData interceptors. This section describes how to register the InterceptorData interceptor so that it works with PersonQuery application at run time.
To register and run the InterceptorData client and server interceptors:
1.
Change directory to the InterceptorData sample directory, where workdirectory represents the name of the directory into which you copied the interceptor sample applications in Chapter , “PersonQuery Sample Application:”
Windows 2003
> cd <workdirectory>\cxx\data_cxx
UNIX
$ cd <workdirectory>/cxx/data_cxx
2.
Windows 2003
> nmake -f makefile.nt config
UNIX
$ make -f makefile.mk config
3.
Windows 2003
> cd <workdirectory>\cxx\app_cxx
> tmboot -y
> PersonQueryClient
UNIX
> cd <workdirectory>/cxx/app_cxx
> tmboot -y
> PersonQueryClient
4.
5.
> tmshutdown -y
Examining the Interceptor Output
The InterceptorData client and target interceptors log each invocation. For each PersonQuery application session, the client interceptor creates a log file named InterceptorDataClientxxx.out, and the target interceptor creates a log file named InterceptorDataTargetxxx.out. This section shows sample log file data for each interceptor.
Sample Client Interceptor Log Output
InterceptorDataClientInit called
ClientInterceptorData::id called

ClientInterceptorData::client_invoke called
ClientInterceptorData::client_response called
Request Id: 1
unable to find request for this reply (must not be one we care about)

ClientInterceptorData::client_invoke called
Request Id: 2
Interface: IDL:beasys.com/PersonQuery:1.0
Operation: findPerson
Parameters:
name: ALISTER LANCASHIRE
address: 3 PENNY LANE
LONDON GB UK
ss: 999-99-9999
sex: can't tell
age(yrs.): 85
marital status: single
hobby: stamp collecting
date-of-birth: 11/25/1913
height(in.): 32
weight(lbs.): 57
hair color: unknown
eye color: blue
skin color: white
other markings: missing limb
Sample Target Interceptor Log Output
InterceptorDataTargetInit called
TargetInterceptorData::id called

TargetInterceptorData::target_response called
Request Id: 2
ReplyStatus: GIOP::NO_EXCEPTION
Interface: IDL:beasys.com/PersonQuery:1.0
Operation: findPerson
Method Result: TRUE
Parameters:
Maximum: 8
Length: 8

Item 0
name: ALISTER LANCASHIRE
address: 3 PENNY LANE
LONDON GB UK
ss: NO PRIVILEDGE
sex: NO PRIVILEDGE
age (years): NO PRIVILEDGE
marital status: NO PRIVILEDGE
hobby: stamp collecting
date-of-birth: NO PRIVILEDGE
height (in.): 32
weight (lbs.): 57
hair color: unknown
eye color: blue
skin color: NO PRIVILEDGE
other markings: missing limb
Unregistering the Interceptors
After you have run the PersonQuery sample application with the InterceptorData sample interceptors, you can unregister those interceptors using the following steps:
1.
> tmshutdown -y
2.
Change directory to the InterceptorData sample directory, where workdirectory represents the name of the directory into which you copied the interceptor sample applications in Chapter , “PersonQuery Sample Application:”
Windows 2003
> cd <workdirectory>\cxx\data_cxx
UNIX
$ cd <workdirectory>/cxx/data_cxx
3.
Windows 2003
> nmake -f makefile.nt unconfig
UNIX
$ make -f makefile.mk unconfig
 

Copyright © 1994, 2017, Oracle and/or its affiliates. All rights reserved.