@Override public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { SilverTrace.info("peasUtil", "RssServlet.doPost", "root.MSG_GEN_ENTER_METHOD"); String instanceId = getObjectId(req); String userId = getUserId(req); String login = getLogin(req); String password = getPassword(req); // rechercher si le composant a bien le flux RSS autorisé if (isComponentRss(instanceId)) { try { SilverTrace.info( "peasUtil", "RssServlet.doPost", "root.MSG_GEN_PARAM_VALUE", "InstanceId = " + instanceId); // Vérification que le user a droit d'accès au composant AdminController adminController = new AdminController(null); UserFull user = adminController.getUserFull(userId); if (user != null && login.equals(user.getLogin()) && password.equals(user.getPassword()) && isComponentAvailable(adminController, instanceId, userId)) { String serverURL = getServerURL(adminController, user.getDomainId()); ChannelIF channel = new Channel(); // récupération de la liste des N éléments à remonter dans le flux int nbReturnedElements = getNbReturnedElements(); Collection<T> listElements = getListElements(instanceId, nbReturnedElements); // création d'une liste de ItemIF en fonction de la liste des éléments for (T element : listElements) { String title = getElementTitle(element, userId); URL link = new URL(serverURL + getElementLink(element, userId)); String description = getElementDescription(element, userId); Date dateElement = getElementDate(element); String creatorId = getElementCreatorId(element); ItemIF item = new Item(); item.setTitle(title); item.setLink(link); item.setDescription(description); item.setDate(dateElement); if (StringUtil.isDefined(creatorId)) { UserDetail creator = adminController.getUserDetail(creatorId); if (creator != null) { item.setCreator(creator.getDisplayedName()); } } else if (StringUtil.isDefined(getExternalCreatorId(element))) { item.setCreator(getExternalCreatorId(element)); } channel.addItem(item); } // construction de l'objet Channel channel.setTitle(getChannelTitle(instanceId)); URL componentUrl = new URL( serverURL + URLManager.getApplicationURL() + URLManager.getURL("useless", instanceId)); channel.setLocation(componentUrl); // exportation du channel res.setContentType("application/rss+xml"); res.setHeader("Content-Disposition", "inline; filename=feeds.rss"); Writer writer = res.getWriter(); RSS_2_0_Exporter rssExporter = new RSS_2_0_Exporter(writer, "UTF-8"); rssExporter.write(channel); } else { objectNotFound(req, res); } } catch (Exception e) { objectNotFound(req, res); } } }