Some of the challenges facing small to medium-sized companies as they migrate to service-oriented architectures for business services is a cost effective means of integrating evolving or disparate systems and enforcing access and messaging policies. JaxView provides several useful policy and governance features to help IT development and operations teams meet these challenges. Along with its versatile performance monitoring capabilities, JaxView can be used as an authentication server for accessing Web services. When JaxView is used as a proxy or gateway to Web service producers, it can also be used to modifiy service requests and responses or to limit the size of number of messages that can be passed to service producers. The following table gives an overview of the policy subsections and the runtime governance capabilities available in JaxView.
|
Policy Section |
Description |
|---|---|
|
Modify the content of incoming client request messages or outgoing service response messages. |
|
|
Options to enforce authentication of users against a JaxView internal client list or against an external LDAP database. Options to decrypt encrypted messages before forwarding them to service endpoints or encrypt messages before returning them to clients. Also options for using SSL/TLS, Secure Token Service (STS), and to authenticate digitally signed requests. |
|
|
Additional options for connecting to LDAP datastores and defining directory queries for user authentication, including complex authorization lookups. |
|
|
Options for setting usage thresholds, specifying a fault message to check for, and options for JaxView data managaement. Also includes options for using JaxView to convert HTTP service requests to the JMS protocol before sending them to an Enterprise Service Bus (ESB). |
|
|
Options for routing service requests to different endpoints based on request metadata or other content. |
|
|
Option to associate a service node with a specific JaxView user role as defined in the Admin tab. Can be used to limit access to service monitoring data to selected JaxView users. |
|
|
Options for applying WS-Policies to a Web service when JaxView is used as a XML firewall or service gateway. |
|
|
When JaxView is deployed as a proxy or gateway, allows access to selected services to be blocked completely or based on a JaxView schedule option. |
You create or edit Web service governance policies using Service node action menus in the the Services object tree. At present, service governance policies are not displayed as objects in the Services object tree. The following sections describe how to work with serve policies in JaxView.
Each Service node in the Services object tree may have policies defined for it. The Service node acts as a container for the policy definitions. Normally, you will define the policies for the operations of a particular service under the Service definition node for those operations. The policy is then active for all operations from that service location. The following is an illustration of the policy object assignment in JaxView.

With the object assignment model used by JaxView, the policies defined under one service node may be different than those applied under another node. Conversely, policies created and applied under one service node may be applied to another service nodes in the tree. This enables policies to be applied globally to any or all services.
The following is an outline of the steps you use to create a new Web service governance policy definition. See the sections below for more details about defining specific policies.
Select the Services tab from the Main View navigation menu.
Click on the Service node in the left side object tree menu for which you want to define governance policies.
Right-click the mouse to display the action menu for the node and select Edit. The Edit service page is displayed in the right panel.
Expand the applicable sub panels in the Policies section of the Service Edit page to define the governance policy. See the sections below for details of the properties used for each policy.
Click Save to record the policy.
Once you have defined service governance policies for one Service node they are active and in force for the service node under which they are defined. The same policy definition can be applied to other service definitions in the Services object tree. The following are the steps you use to apply a Web service governance policy to one or more Web services:
To apply policies to other Web service definitions:
Click on the Service node in the left side object tree menu for which you want to enable governance policies.
Right-click the mouse to display the action menu for the node and select Assign Policies to Services.
Expand the applicable sub panels in the Policies section of the Apply Policies page to that correspond with the governance policies you defined in the previous steps.
Check the check box in the applicable sub panel to activate the policy.
Use the Services assignment sub tree in the lower part of the page to select the service nodes to which the policy will be enforced. Click to expand the nodes in the menu tree as necessary and mark the check box to the left of the service name(s).
Click the Assign button to make the policy assignment.
The following figure illustrates the policy application in JaxView. As noted, you use the Edit option for the Service node to Assign Policies to Services option to assign them to another service node.

After policies are defined and applied, they remain in force until they are removed from the service nodes. To cancel or remove a policy, all the fields in the policy definition section that is to be canceled must be cleared. Use the following steps to cancel a policy.
To cancel policies for Web service definitions:
Select the Services tab from the Main View navigation menu
Click on the Service node in the left side object tree menu for which you want to define governance policies.
Right-click the mouse to display the action menu for the node and select Edit. The Edit service page is displayed in the right panel
Expand the applicable sub panels in the Policies section of the Service Edit page for the policy that is to be removed.
Clear all of the fields in the policy definition form.
Click Save to record the change.
The following sections describe the policy configuration properties and how to use them to create Web service governance policies in JaxView.
Use this section to define expressions that JaxView will use to modify the content of incoming request messages or response messages. Message modification policies are only effective when JaxView is used as a proxy for the service. The service requests and responses must be routed through JaxView in order to for the modification policies to be implemented. The policy is effective for messages to all operations under the service node to which it is applied.
To create a request/response modification policy:
Select the Services tab from the Main View navigation menu.
Click on the Service node in the left side object tree menu for which you want to define the modification policy
Right-click the mouse to display the action menu for the node and select Edit. The Edit service page is displayed in the right panel.
Expand the Request/Response Modification Policies sub panel in the Policies section of the Service Edit page.
To modify service request or response messages, enter one or more pattern matching expressions in the applicable Modification Expressions field. Separate multiple expressions with the XPATH: or REGEX: prefix indicating the applicable expression type. See the sections below for details of the properties used for each policy.
Enter the text to be substituted into the location(s) matched by the Modification expressions. For multiple pattern matching expressions, separate the substitution strings with commas, maintaining the order that maps to the expression where the string should be inserted.
Click Save to record the policy.
The Security Policies sub section includes a number of properties used to enable service client authentication policies. You use this section to configure policies for the following governance options:
Some properties in this section are used both for the JaxView native authentication options and in combination with LDAP/AD Authentication Policies. As with other policies, Security policies are only valid when JaxView is used as a proxy server to the Web services being managed.
The following describes the properties in the Security Policies section. The properties you define will depend on which policy type you want to enable.
Use this section to have JaxView enforce user authentication when it is used as a proxy or service gateway.
Enable this option if JaxView is used as a proxy and if service requests or reponses need encryption or decryption before being forwarded to their destination.
Use this option if incoming requests use XML digital signature.
This section is for Web services that require SSL certificate authentication. When JaxView is used as a proxy the certificate can be installed on the JaxView Server. This will have the effect of moving the SSL hand shake from the Web service endpoint to the JaxView server.
Server Side Certificate
You use this section to setup JaxView to validate WS-Security headers in SOAP messages. The properties are similar to properties set in a deployment descriptor in an Apache Axis container. It can peform the certificate validation and decryption. You can find more information here.
passwordCallbackClass=org.apache.ws.axis.oasis.PWCallback
action=Signature Signature
signaturePropFile=crypto.properties
Use this section to configure JaxView to authenticate clients through a Secure Token Service. This can be done using WS-Trust or other protocols by customizing a class file in the JaxView package. JaxView includes a class that enables authentication using WS-Trust.
You can create a new class and put it in this package and it will get loaded automatically. IMPORTANT: The class name must end with the letters "STS".
When used as a proxy server or gateway, JaxView can secure Web services using an LDAP database or Active Directory (AD). There are three options for doing this kind of authentication. The following describes these options and the settings that need to be used for each option.
Note: JaxView makes use of a substitution variables to match and retain the values from service messages. The LDAP/AD Authentication options make use of two of these variables. One of these, USER_ID, is used to construct certain policy property strings . In order to use these variables and configure the LDAP authentication policies, you must provide content match expressions for the Username Xpath and Password Xpath properties in the Security Policies sub section.
Direct LDAP server bind using user name and password from the request message. JaxView try to bind to the LDAP server with the user name and password in the request. If the binding is successful then the request is authenticated.
Use this option if:
the relative location of the distinguished names (DN) in the Directory Information Tree of the users is known already and
all users that need to be authenticated to this policy are found in the same relative location in the Directory Information Tree of the LDAP database.
The following are the steps you use to configure authentication option A:
Select the Services tab from the Main View navigation menu.
Click on the Service node in the left side object tree menu for which you want to define the modification policy
Right-click the mouse to display the action menu for the node and select Edit. The Edit service page is displayed in the right panel.
Expand the Security Policies sub panel in the Policies section of the Service Edit page.
Enter the XPath match expression or regular expression that will match on the username in the service request messages. This match will be assigne to the USER_ID retained value variable.
Enter the XPath match expression or regular expression that will match on the user password in the service request messages.
Expand the LDAP/AD Authentication Policies sub panel in the Policies section of the Service Edit page.
Click the Enable LDAP Authentication check box at the top of the sub panel. This box must be checked to enable the policy enforcement.
Enter the address for the LDAP or AD server to use for authentication in the LDAP Provider URL field.
Enter the string for the Security Principal field using the USER_ID retained value variable variable. For example, uid=[USER_ID],ou=operations, o=smecompany,dc=com.
Click Save to record the policy.
This option uses a defined security principal (not the [USER_ID] variable) and password to perform a query on the database for a user. JaxView will use the security principal and the default password to bind to the LDAP server and search using the search filter to find the DN for the user. If a DN is returned, JaxView then it uses the DN and the user password to rebind to the LDAP server. If any portion of this fails, JaxView will not authenticate the user and an error is sent in response.
Use this option if:
the relative location of the distinguished names (DN) in the Directory Information Tree of the users is not known already and
the DN for users that need to be authenticated to this policy are not all in the same relative location in the Directory Information Tree of the LDAP database.
The following are the steps you use to configure authentication option B:
Select the Services tab from the Main View navigation menu.
Click on the Service node in the left side object tree menu for which you want to define the modification policy
Right-click the mouse to display the action menu for the node and select Edit. The Edit service page is displayed in the right panel.
Expand the Security Policies sub panel in the Policies section of the Service Edit page.
Enter the XPath match expression or regular expression that will match on the username in the service request messages. This match will be assigne to the USER_ID retained value variable.
Enter the XPath match expression or regular expression that will match on the user password in the service request messages.
Expand the LDAP/AD Authentication Policies sub panel in the Policies section of the Service Edit page.
Click the Enable LDAP Authentication check box at the top of the sub panel. This box must be checked to enable the policy enforcement.
Enter the address for the LDAP or AD server to use for authentication in the LDAP Provider URL field. For example, ldap://dirsrv.smecompany.com:389.
Enter the string for the Security Principal field using a known, authorized user name. For example, uid=Manager,ou=operations, o=smecompany,dc=com.
Enter the password for the authorized user name in the Password field.
Enter the a valid LDAP search filter (see RFC 2554 for reference) to locate the user identified in the incoming request message. Use the USER_ID retained value variable. For example, (uid=[USER_ID]).
Enter the root DN in which the search should be made. For example, o=smecompany,dc=com .
Click Save to record the policy.
This option is similar to Option B except JaxView will search for Roles. The search filter entered needs to include the queries for the applicable roles that the service belongs to. If any result is returned then the request is authenticated. JaxView assumes that there is not a password in the request.
The following are the steps you use to configure authentication option C:
Configure the authentication policy using the steps for Option B above.
Check the Check in Roles option check box.
Enter the a valid LDAP search filter (see RFC 2554 for reference) to locate the user identified in the incoming request message and role query. Use the USER_ID retained value variable. For example, (uid=[USER_ID])(!(role=admin)(role=test))).
Click Save to record the policy.
The following describe the settings in the LDAP/AD Authentication sub panel.
You use the Web Services General Policies section to set message size limits, service daily message traffic limits, or to configure JaxView to forward messages to another JaxView server for recording. The properties you define will depend on the policy you want to enable. The following describe the settings in the Web Services General Policies section.
Use these settings in this section if JaxView is installed as a proxy in front of an Enterprise Service Bus (ESB) and service request messages need to be forwarded using the JMS protocol instead of the HTTP protocol.
The following describe the properties for the JMS policies option. You must add a ESB connection object for the ESB to which you want to send JMS messages. See the ESB/Message Broker section of the Admin tab for more information. You also must know the Topic Name and Queue Name to which messages sent to this service should be forwarded.
Use the Routing Policies section to define a pattern matching expression that JaxView should use as a criteria to re-route a message to a different service location. If the pattern expression is matched, JaxView will forward the message to the Service URL entered in this section. These policies are only effective when JaxView is used as a proxy server or service gateway.
Roles in JaxView are defined to control the access and action permissions for different JaxView user profiles. User access roles are managed using the Roles node of the Admin object tree. You can also assign access to a service node using the Roles policy sub panel.
Use this section to activate an imported WS-Policy to the Web Service. Use the WS-Policy node in the admin tab to import new policies into the JaxView system.
IMPORTANT: The Policy Expression associate with the WS-Policy object must return a valid match for ALL messages to which you want to apply the the selected WS-Policy See the section WS-Policy under the Admin tab for more information.
Use the Block Web Service Operations section to have JaxView block as requests
to selected operations made available by a service endpoint. This can be useful when a
service exposes operations that should not be accessible to external clients such as an
internal system administration operation.
Note: This policy is only effective when JaxView is deployed
as a service gateway or proxy.
To block access to a Web service operation: