Obtention de l'interface SPI du contrôleur
L'interface SPI du modèle de configuration des connexions HTTP sortantes accorde l'accès en lecture à la configuration uniquement. Vous pouvez mettre à jour le modèle de configuration des connexions HTTP sortantes à l'aide de l'interface SPI du contrôleur.
Pourquoi et quand exécuter cette tâche
Voici un exemple de fragment de code :
import com.ibm.portal.outbound.config.*;
...
OutboundConnectionModel model; // refer to the previous example for information
// about how to instantiate this model
...
javax.naming.Context ctx = new javax.naming.InitialContext();
OutboundConnectionModelControllerHome chome = (OutboundConnectionModelControllerHome)
ctx.lookup("portal:service/model/OutboundConnectionModelController");
OutboundConnectionModelController ctrl =
home.getOutboundConnectionModelControllerProvider().getOutboundConnectionModelController(model);Le code qui appelle l'interface SPI doit s'exécuter dans le contexte du serveur de portail. Notez que l'accès à l'interface SPI du contrôleur est possible uniquement pour les utilisateurs dotés de droits d'administration. Recherche d'éléments de configuration : vous pouvez accéder à des éléments de configuration à l'aide d'interfaces
Locator fournies par le modèle de connexion sortante. Les localisateurs suivants sont définis dans l'interface SPI du modèle : OutboundConnectionProfileLocator, PolicyMappingLocator, PolicyRuleLocator CookieRuleLocator et PolicyVariableLocator. L'exemple suivant montre comment localiser des élément de configuration à l'aide des différents localisateurs :import com.ibm.portal.outbound.config.*;
OutboundConnectionModel model; // refer to previous examples, how to instantiate this model
...
// Locate the global outbound HTTP connection profile:
OutboundConnectionProfile profile = model.getProfileLocator().findGlobalProfile();
// Locate the mapping that is assigned with the context path "/proxy":
PolicyMapping mapping = model.getPolicyMappingLocator(profile).findByContextPath("/proxy")
// Locate a policy rule that resides in the selected mapping and has a the following URL pattern:
PolicyRule rule = model.getPolicyRuleLocator(mapping).findByUrlPattern("http://localhost:9092/*");
// Collect a list of cookie rules that reside in the selected policy rule and start with the
// cookie name "myCookie". The items are collected in the list "filteredCookies":
List<CookieRule> filteredCookies = new ArrayList<CookieRule>();
model.getCookieRuleLocator(rule).collectAllMatching(
new PatternMatcher<CookieRule>() {
public int getMatchValue (CookieRule candidate) {
return (candidate.getCookieNames()[0].startsWith("myCookie")) ? 1 : 0;
}
},filteredCookies);
// Locate a policy variable by its name:
PolicyVariable pvar = model.getPolicyVariableLocator(globalProfile).findByName("the.policy.var");