Я использую пример кода Citrix в качестве основы и пытаюсь получить его для создания ICA-файлов, которые предписывают клиенту использовать своего поставщика Secure Gateway (CSG). Моя конфигурация состоит в том, что адрес сервера файла ICA заменяется билетом CSG, и трафик вынужден идти в CSG.
Проблема заключается в том, что и Citrix App Server (который предоставляет сеанс ICA на 1494), и CSG должны координировать свои действия через Secure Ticket Authority (STA). Это означает, что мой код должен общаться с STA, поскольку он создает файл ICA, потому что STA содержит билет, который CSG должен встроить в файл ICA. Смешение? Конечно! Но это намного безопаснее.
Код предварительной CSG выглядит следующим образом:
AppLaunchInfo launchInfo = (AppLaunchInfo)userContext.launchApp(appID, new AppLaunchParams(ClientType.ICA_30));
ICAFile icaFile = userContext.convertToICAFile(launchInfo, null, null);
Я пытался получить информацию SSLEnabled для поколения ICA, но этого было недостаточно. вот этот код:
launchInfo.setSSLEnabled(true);
launchInfo.setSSLAddress(new ServiceAddress("CSG URL", 443));
Теперь, похоже, мне нужно зарегистрировать STA при настройке фермы:
ConnectionRoutingPolicy policy = config.getDMZRoutingPolicy();
policy.getRules().clear();
//Set the Secure Ticketing Authorities (STAs).
STAGroup STAgr = new STAGroup();
STAgr.addSTAURL(@"http://CitrixAppServerURL/scripts/ctxsta.dll");
//creat Secure Gateway conenction
SGConnectionRoute SGRoute = new SGConnectionRoute(@"https://CSGURL");
SGRoute.setUseSessionReliability(false);
SGRoute.setGatewayPort(80);
SGRoute.setTicketAuthorities(STAgr);
// add the SGRoute to the policy
policy.setDefault(SGRoute);
Это основано на коде, который я нашел на форумах Citrix ; однако это лишает меня возможности подключаться к ферме и получать список приложений!
Может кто-нибудь указать мне пример кода, который работает? Или справочный документ?