Webinterface 5.4 Application Filter

Auf Basis der Citrix Artikel CTX122133 und CTX123969 haben wir eine Codeerweiterung für Web Interface Seiten entwickelt, die es ermöglicht auf einer XenApp Web Seite Anwendungen ein/auszublenden, die einen definierte “tag” im Beschreibungsfeld der Veröffentlichten Anwendung haben. CTX122133 bietet diese Möglichkeit bereits aber nur für XenApp Service Site (ehemals PNAgent)
CTX123969 bietet auch diese Möglichkeit für XenApp Website, es muss aber am Webinterface (webinterface.conf) eine Anpassung gemacht werden.
Vorgehen:
..Citrix/XenApp/app_code/Pages/Java/com/citrix/wi/pageutils/ApplistUtils.java
Wenn die Datei im gleichen Verzeichnis gesichert wird sollte die Endung (.java) verändert werden.
In dieser Datei muss die Prozedur “public static ResourceInfo[]” angepasst werden:

  • Die Zeilen 253 bis 259 müssen hinzugefügt werden.
  • in Zeile 256 wird der String definiert, der in der Beschreibung der Anwendung hinzugefügt wird um die Anwendung anzuzeigen. Es ist sinnvoll diesen Begriff mit einem Sonderzeichen zu beginnen und abzuschliessen, dazum Beispiel in großen Umgebungen mit mehreren XenApp Web Sites auch mehrere diese EX/INcludes genutzt werden können
  • Sollen Anwendungen mit entspechender Berschreibung ausgeblendet werden (Blacklisting) kann die IF Abfrage der CodeZeile 256 mit “!” negiert werden:
if (!(res.getDescription().IndexOf("#HIDEME#") < 0))
public static ResourceInfo[] removeHiddenResources(WIContext wiContext, ResourceInfo[] resources) {
ArrayList filtered = new ArrayList();
boolean platformRadeCapable =
Include.getOsRadeCapable(wiContext.getClientInfo(), wiContext.getUserEnvironmentAdaptor())
&& Include.getBrowserRadePluginCapable(wiContext.getClientInfo(), wiContext.getUserEnvironmentAdaptor());
for (int ix = 0; ix < resources.length; ++ix) {
ResourceInfo res = resources[ix];
if (!platformRadeCapable) {
if (!res.isAccessMethodAvailable(AccessMethod.LOCATION)
&& !res.isAccessMethodAvailable(AccessMethod.DISPLAY)
&& res.isAccessMethodAvailable(AccessMethod.STREAM)) {
// This resource can only be accessed by a rade capable platform
continue;
}
}
// FILTER APPS for Webinterface
// this question filters IN the App with the matching Description
if ((res.getDescription().IndexOf("#SHOWME#") < 0)) {
continue;
}
//END of FILTER
// This resource should be shown
filtered.add(res);
}
return (ResourceInfo[])filtered.toArray(new ResourceInfo[0]);
}
Facebook
Twitter
LinkedIn
WhatsApp