Sie können einen angepassten Filter für Ihren Proxy-Server erstellen, wenn der Proxy-Server eine Funktion ausführen muss, wie z. B.
angepasste Protokollierung, die über die normalen Produkteinstellungen nicht bereitgestellt wird.
Vorbereitende Schritte
- Legen Sie fest, wo das Artefakt gespeichert werden soll, das den von Ihnen erstellten Filter enthält.
Sie können dieses Artefakt aus dem lokalen oder fernen Dateisystem importieren.
- Sie müssen den Namen des Proxy-Servers kennen, in dem Sie den angepassten Filter installieren möchten.
- Sie müssen die Administrationskonsole starten, die für die Steuerung dieses Proxy-Servers verwendet wird, sofern diese noch nicht gestartet ist.
Informationen zu diesem Vorgang
Ein Filter bietet Ihnen eine optionale, sekundäre Steuerung über eine Funktion, die
über die Steuerung hinausgeht, die normalerweise über die typischen Produkteinstellungen bereitgestellt wird.
Eine Anwendung kann beispielsweise einen Filtermechanismus für die Protokollierung verwenden, um alle Ereignisse zu
unterdrücken, die einen bestimmten Nachrichtenschlüssel haben.
Vorgehensweise
- Erstellen Sie einen angepassten Filter.
- Erstellen Sie eine Klasse, die "com.ibm.wsspi.proxy.filter.http.HttpDefaultFilter" erweitert.
- Überschreiben Sie die abstrakte Methode "doFilter" und optional die Methoden "init" und "destroy".
Wenn Sie die Methoden "init" und "destroy" überschreiben, müssen Sie die Superversionen dieser Methoden
aufrufen, um die Lebenszyklusfunktionen des Filters zu bewahren.
- Schreiben Sie eine neue Methode "doFilter", die die Schnittstelle "HttpProxyServiceContext" verwendet.
Diese neue Methode "doFilter" kann so geschrieben werden, dass sie
- alle Artefakte ändert, die der Anforderung bzw. Antwort zugeordnet sind, z. B. die Anforderung selbst, den Antwortcode oder die Header,
- alle Artefakte ändert, die der Anforderung und der Antwort zugeordnet sind,
- Informationen zur Anforderung bzw. Antwort abruft,
- Informationen zur Anforderung und der Antwort abruft.
- Verwenden Sie die Managed Bean ((MBean) für Proxy-Server-Filter "proxyFilterMbean", um die richtige Ordinalzahl
für den Filter zu bestimmen.
proxyFilterMbean = AdminControl.queryNames('type=ProxyServerFilterBean,*')
AdminControl.invoke(proxyFilterMbean, 'viewAllFilters')
Die Reihenfolge, in der alle Filter im Proxy-Server verarbeitet werden, wird angezeigt.
- Erstellen Sie die Filterdeskriptordatei "filter-context.xml".
Diese Datei wird verwendet, um alle Filter zu definieren, die diesen Deskriptor haben.
Das folgende Beispiel veranschaulicht eine Basisversion der Datei "filter-context.xml".
In diesem Beispiel bestimmt der Deskriptor, wo und wann der angegebene Filter für die Anforderung und die Antwort ausgeführt wird.
Der Filterpunkt bestimmt, wo der Filter ausgeführt wird.
In diesem Beispiel wird der Filter nach dem Empfang der Anforderung ausgeführt.
Die Ordinalzahl bestimmt, wann der Filter im Vergleich mit anderen Filtern an demselben Filterpunkt
verarbeitet wird.
Je höher die Ordinalzahl ist, desto höher steht der Filter in der Verarbeitungswarteschlange.
<?xml version="1.0" encoding="UTF-8>
<filter-context xmlns="http://www.ibm.com/2003/FilterContextSchema">
<description>Proxy Filter Sample descriptor</description>
<display-name>Proxy Sample Filter</display-name>
<filter>
<filter-name>HttpRequestFilter</filter-name
<filter-class>com.ibm.ws.proxy.sample.HttpRequestFilter</filter-class>
<description>HTTP sample filter to run at REQUEST filter point</description>
<display-name>HTTP Request Sample</display-name>
<protocol-name>HTTP</protocol-name>
<filter-point>RequestReceived</filter-point>
<ordinal>1000</ordinal>
</filter>
</filter-context>
- Packen Sie die kompilierten Dateien mit der Erweiterung ".class" für den Filter und den zugehörigen Filterdeskriptor in eine JAR-Datei.
- Importieren Sie das Artefakt (JAR-Datei), die den angepassten Filter enthält.
- Klicken Sie in der Administrationskonsole auf .
- Wählen Sie Lokales Dateisystem oder Fernes
Dateisystem aus, um anzuzeigen, wo sich die JAR-Datei befindet.
- Geben Sie den vollständig qualifizierten Namen der JAR-Datei an.
Der vollständig qualifizierte Name
der JAR-Datei enthält den Verzeichnispfad, in dem sich die Datei befindet, und den Dateinamen.
Wenn Sie den vollständig qualifizierten Namen der JAR-Datei nicht kennen, können Sie die Datei mit der Funktion "Durchsuchen" suchen.
- Erstellen Sie eine Geschäftsanwendung, die dieses Artefakt enthält.
- Klicken Sie in der Administrationskonsole auf .
- Geben Sie im Feld Name einen Namen für die neue Anwendung an, die Sie erstellen.
Im Feld Beschreibung können Sie eine Beschreibung der Anwendung eingeben.
- Klicken Sie auf Anwenden.
- Erstellen Sie aus dem Artefakt eine Kompositionseinheit für die Geschäftsanwendung.
- Klicken Sie in der Tabelle Implementierte Assets auf
Hinzufügen > Asset hinzufügen.
- Wählen Sie den Namen des im ersten Schritt importierten Artefakts aus und klicken Sie anschließend auf
Weiter.
- Ändern Sie die Einstellungen der Kompositionseinheit wie gewünscht und klicken Sie anschließend auf Ziel ändern.
- Wählen Sie in der Liste der verfügbaren Implementierungsziele den Proxy-Server aus, in dem Sie diese Kompositionseinheit implementieren möchten, und klicken
Sie anschließend auf OK.
Wenn Sie auf OK klicken, ordnet das Produkt die Kompositionseinheit dem ausgewählten Proxy-Server zu.
- Geben Sie die Beziehungsoptionen für diese Kompositionseinheit an.
- Klicken Sie auf Fertigstellen.
Wenn Sie sicherstellen möchten, dass das Produkt die Kompositionseinheit erfolgreich hinzugefügt hat, klicken Sie auf
Anwendungsname. Wenn das Produkt
die Kompositionseinheit erfolgreich hinzugefügt hat, erscheint der Name der Kompositionseinheit in der Liste der implementierten Assets für diese Geschäftsanwendung.
- Starten Sie den Proxy-Server.
- Starten Sie die Geschäftsanwendung, die den Filter enthält.
Ergebnisse
Der Filter wird im Proxy-Server ausgeführt.
Nächste Schritte
Verwenden Sie die Managed Bean (MBean) für Proxy-Server-Filter "proxyFilterMbean", um sicherzustellen, dass
der Filter im Proxy-Server installiert wurde und dass er in Bezug auf die anderen Filter, die im Proxy-Server implementiert sind,
an der richtigen Position ausgeführt wird.
Wenn Sie Position des Filters in der Verarbeitungsreihenfolge ändern müssen, führen Sie den Befehl
"modifyOrdinal" mit der Managed Bean "proxyFilterMbean" aus.