use of nl.nn.adapterframework.util.XmlBuilder in project iaf by ibissource.
the class ShowSecurityItems method addSecurityRoleBindings.
private void addSecurityRoleBindings(XmlBuilder securityItems) {
XmlBuilder appBnd = new XmlBuilder("securityRoleBindings");
String appBndString = null;
try {
appBndString = Misc.getDeployedApplicationBindings();
appBndString = XmlUtils.removeNamespaces(appBndString);
} catch (IOException e) {
appBndString = "*** ERROR ***";
}
appBnd.setValue(appBndString, false);
securityItems.addSubElement(appBnd);
}
use of nl.nn.adapterframework.util.XmlBuilder in project iaf by ibissource.
the class ShowSecurityItems method addSapSystems.
private void addSapSystems(XmlBuilder securityItems) {
List sapSystems = null;
Object sapSystemFactory = null;
Method factoryGetSapSystemInfo = null;
try {
Class c = Class.forName("nl.nn.adapterframework.extensions.sap.SapSystemFactory");
Method factoryGetInstance = c.getMethod("getInstance");
sapSystemFactory = factoryGetInstance.invoke(null, null);
Method factoryGetRegisteredSapSystemsNamesAsList = c.getMethod("getRegisteredSapSystemsNamesAsList");
sapSystems = (List) factoryGetRegisteredSapSystemsNamesAsList.invoke(sapSystemFactory, null);
factoryGetSapSystemInfo = c.getMethod("getSapSystemInfo", String.class);
} catch (Throwable t) {
log.debug("Caught NoClassDefFoundError, just no sapSystem available: " + t.getMessage());
}
if (sapSystems != null) {
XmlBuilder sss = new XmlBuilder("sapSystems");
securityItems.addSubElement(sss);
Iterator iter = sapSystems.iterator();
while (iter.hasNext()) {
XmlBuilder ss = new XmlBuilder("sapSystem");
sss.addSubElement(ss);
String name = (String) iter.next();
ss.addAttribute("name", name);
XmlBuilder infoElem = new XmlBuilder("info");
try {
infoElem.setCdataValue((String) factoryGetSapSystemInfo.invoke(sapSystemFactory, name));
} catch (Exception e) {
infoElem.setValue("*** ERROR ***");
}
ss.addSubElement(infoElem);
}
}
}
use of nl.nn.adapterframework.util.XmlBuilder in project iaf by ibissource.
the class ShowSecurityItems method addRegisteredAdapters.
private void addRegisteredAdapters(XmlBuilder securityItems) {
XmlBuilder registeredAdapters = new XmlBuilder("registeredAdapters");
securityItems.addSubElement(registeredAdapters);
for (IAdapter iAdapter : ibisManager.getRegisteredAdapters()) {
Adapter adapter = (Adapter) iAdapter;
XmlBuilder adapterXML = new XmlBuilder("adapter");
registeredAdapters.addSubElement(adapterXML);
adapterXML.addAttribute("name", adapter.getName());
Iterator recIt = adapter.getReceiverIterator();
if (recIt.hasNext()) {
XmlBuilder receiversXML = new XmlBuilder("receivers");
while (recIt.hasNext()) {
IReceiver receiver = (IReceiver) recIt.next();
XmlBuilder receiverXML = new XmlBuilder("receiver");
receiversXML.addSubElement(receiverXML);
receiverXML.addAttribute("name", receiver.getName());
if (receiver instanceof HasSender) {
ISender sender = ((HasSender) receiver).getSender();
if (sender != null) {
receiverXML.addAttribute("senderName", sender.getName());
}
}
}
adapterXML.addSubElement(receiversXML);
}
// make list of pipes to be displayed in configuration status
XmlBuilder pipesElem = new XmlBuilder("pipes");
adapterXML.addSubElement(pipesElem);
PipeLine pipeline = adapter.getPipeLine();
for (int i = 0; i < pipeline.getPipes().size(); i++) {
IPipe pipe = pipeline.getPipe(i);
String pipename = pipe.getName();
if (pipe instanceof MessageSendingPipe) {
MessageSendingPipe msp = (MessageSendingPipe) pipe;
XmlBuilder pipeElem = new XmlBuilder("pipe");
pipeElem.addAttribute("name", pipename);
ISender sender = msp.getSender();
pipeElem.addAttribute("sender", ClassUtils.nameOf(sender));
pipesElem.addSubElement(pipeElem);
if (sender instanceof WebServiceSender) {
WebServiceSender s = (WebServiceSender) sender;
String certificate = s.getCertificate();
if (StringUtils.isNotEmpty(certificate)) {
XmlBuilder certElem = new XmlBuilder("certificate");
certElem.addAttribute("name", certificate);
String certificateAuthAlias = s.getCertificateAuthAlias();
certElem.addAttribute("authAlias", certificateAuthAlias);
URL certificateUrl = ClassUtils.getResourceURL(this, certificate);
if (certificateUrl == null) {
certElem.addAttribute("url", "");
pipeElem.addSubElement(certElem);
XmlBuilder infoElem = new XmlBuilder("info");
infoElem.setCdataValue("*** ERROR ***");
certElem.addSubElement(infoElem);
} else {
certElem.addAttribute("url", certificateUrl.toString());
pipeElem.addSubElement(certElem);
String certificatePassword = s.getCertificatePassword();
CredentialFactory certificateCf = new CredentialFactory(certificateAuthAlias, null, certificatePassword);
String keystoreType = s.getKeystoreType();
addCertificateInfo(certElem, certificateUrl, certificateCf.getPassword(), keystoreType, "Certificate chain");
}
}
} else {
if (sender instanceof HttpSender) {
HttpSender s = (HttpSender) sender;
String certificate = s.getCertificate();
if (StringUtils.isNotEmpty(certificate)) {
XmlBuilder certElem = new XmlBuilder("certificate");
certElem.addAttribute("name", certificate);
String certificateAuthAlias = s.getCertificateAuthAlias();
certElem.addAttribute("authAlias", certificateAuthAlias);
URL certificateUrl = ClassUtils.getResourceURL(this, certificate);
if (certificateUrl == null) {
certElem.addAttribute("url", "");
pipeElem.addSubElement(certElem);
XmlBuilder infoElem = new XmlBuilder("info");
infoElem.setCdataValue("*** ERROR ***");
certElem.addSubElement(infoElem);
} else {
certElem.addAttribute("url", certificateUrl.toString());
pipeElem.addSubElement(certElem);
String certificatePassword = s.getCertificatePassword();
CredentialFactory certificateCf = new CredentialFactory(certificateAuthAlias, null, certificatePassword);
String keystoreType = s.getKeystoreType();
addCertificateInfo(certElem, certificateUrl, certificateCf.getPassword(), keystoreType, "Certificate chain");
}
}
} else {
if (sender instanceof FtpSender) {
FtpSender s = (FtpSender) sender;
String certificate = s.getCertificate();
if (StringUtils.isNotEmpty(certificate)) {
XmlBuilder certElem = new XmlBuilder("certificate");
certElem.addAttribute("name", certificate);
String certificateAuthAlias = s.getCertificateAuthAlias();
certElem.addAttribute("authAlias", certificateAuthAlias);
URL certificateUrl = ClassUtils.getResourceURL(this, certificate);
if (certificateUrl == null) {
certElem.addAttribute("url", "");
pipeElem.addSubElement(certElem);
XmlBuilder infoElem = new XmlBuilder("info");
infoElem.setCdataValue("*** ERROR ***");
certElem.addSubElement(infoElem);
} else {
certElem.addAttribute("url", certificateUrl.toString());
pipeElem.addSubElement(certElem);
String certificatePassword = s.getCertificatePassword();
CredentialFactory certificateCf = new CredentialFactory(certificateAuthAlias, null, certificatePassword);
String keystoreType = s.getCertificateType();
addCertificateInfo(certElem, certificateUrl, certificateCf.getPassword(), keystoreType, "Certificate chain");
}
}
}
}
}
}
}
}
}
use of nl.nn.adapterframework.util.XmlBuilder in project iaf by ibissource.
the class ShowSecurityItems method addProvidedJmsDestinations.
private void addProvidedJmsDestinations(XmlBuilder securityItems, String confResString) {
XmlBuilder providedJmsDestinationsXml;
if (confResString == null) {
providedJmsDestinationsXml = new XmlBuilder("providedJmsDestinations");
providedJmsDestinationsXml.addAttribute("warn", "true");
providedJmsDestinationsXml.setCdataValue("Resources file not found or empty");
} else {
List<JmsDestination> usedJmsDestinations;
try {
usedJmsDestinations = retrieveUsedJmsDestinations();
providedJmsDestinationsXml = buildProvidedJmsDestinationsXml(confResString, usedJmsDestinations);
} catch (Exception e) {
providedJmsDestinationsXml = new XmlBuilder("providedJmsDestinations");
providedJmsDestinationsXml.addAttribute("error", "true");
providedJmsDestinationsXml.setCdataValue(e.getMessage());
}
}
securityItems.addSubElement(providedJmsDestinationsXml);
}
use of nl.nn.adapterframework.util.XmlBuilder in project iaf by ibissource.
the class Browse method executeSub.
public ActionForward executeSub(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
// Initialize action
initAction(request);
DynaActionForm browseForm = getPersistentForm(mapping, form, request);
String submit = request.getParameter("submit");
log.debug("submit param [" + submit + "]");
String maxMessagesStr = getAndSetProperty(request, browseForm, "maxMessages", getMaxMessages() + "");
String skipMessagesStr = getAndSetProperty(request, browseForm, "skipMessages", "0");
String action = getAndSetProperty(request, browseForm, "action");
String storageType = getAndSetProperty(request, browseForm, "storageType");
String adapterName = getAndSetProperty(request, browseForm, "adapterName");
String receiverName = getAndSetProperty(request, browseForm, "receiverName");
String pipeName = getAndSetProperty(request, browseForm, "pipeName");
String messageId = getAndSetProperty(request, browseForm, "messageId");
String typeMask = getAndSetProperty(request, browseForm, "typeMask");
String hostMask = getAndSetProperty(request, browseForm, "hostMask");
String currentIdMask = getAndSetProperty(request, browseForm, "currentIdMask");
String messageIdMask = getAndSetProperty(request, browseForm, "messageIdMask");
String correlationIdMask = getAndSetProperty(request, browseForm, "correlationIdMask");
String commentMask = getAndSetProperty(request, browseForm, "commentMask");
String messageTextMask = getAndSetProperty(request, browseForm, "messageTextMask");
String labelMask = getAndSetProperty(request, browseForm, "labelMask");
String startDateStr = getAndSetProperty(request, browseForm, "insertedAfter");
String startDateClipStr = getAndSetProperty(request, browseForm, "insertedAfterClip");
// not yet supported in actionForm
String endDateStr = request.getParameter("insertedBefore");
// not yet supported in actionForm
String forceDescStr = request.getParameter("forceDescending");
String viewAs = getAndSetProperty(request, browseForm, "viewAs", request.getParameter("type"));
String[] selected = (String[]) browseForm.get("selected");
boolean startDateClip = "on".equals(startDateClipStr);
if (StringUtils.isNotEmpty(submit)) {
action = submit;
}
Date startDate = null;
Date endDate = null;
String formattedStartDate = null;
if (StringUtils.isNotEmpty(startDateStr)) {
try {
startDate = DateUtils.parseAnyDate(startDateStr);
if (startDate != null) {
formattedStartDate = DateUtils.formatOptimal(startDate);
log.debug("parsed start date to [" + formattedStartDate + "]");
browseForm.set("insertedAfter", formattedStartDate);
if (startDateClip) {
endDate = DateUtils.nextHigherValue(startDate);
}
} else {
warn("could not parse date from [" + startDateStr + "]");
}
} catch (CalendarParserException e) {
warn("could not parse date from [" + startDateStr + "]", e);
}
}
if (StringUtils.isNotEmpty(endDateStr)) {
try {
endDate = DateUtils.parseAnyDate(endDateStr);
if (startDate == null) {
warn("could not parse date from [" + endDateStr + "]");
}
} catch (CalendarParserException e) {
warn("could not parse date from [" + startDateStr + "]", e);
}
}
ArrayList viewAsList = new ArrayList();
viewAsList.add("html");
viewAsList.add("text");
browseForm.set("viewAsList", viewAsList);
log.debug("selected [" + browseForm.get("selected") + "]");
// ArrayList selected=(ArrayList)browseForm.get("selected");
// for (int i=0; i<selected.size(); i++) {
// log.debug("selected "+i+" = ["+selected.get(i));
// }
maxMessages = Integer.parseInt(maxMessagesStr);
skipMessages = Integer.parseInt(skipMessagesStr);
// commandIssuedBy containes information about the location the
// command is sent from
String commandIssuedBy = HttpUtils.getCommandIssuedBy(request);
log.debug("storageType [" + storageType + "] action [" + action + "] submit [" + submit + "] adapterName [" + adapterName + "] receiverName [" + receiverName + "] pipeName [" + pipeName + "] issued by [" + commandIssuedBy + "]");
Adapter adapter = (Adapter) ibisManager.getRegisteredAdapter(adapterName);
IMessageBrowser mb;
IListener listener = null;
String logCount;
if ("messagelog".equals(storageType)) {
if (StringUtils.isNotEmpty(pipeName)) {
MessageSendingPipe pipe = (MessageSendingPipe) adapter.getPipeLine().getPipe(pipeName);
mb = pipe.getMessageLog();
} else {
ReceiverBase receiver = (ReceiverBase) adapter.getReceiverByName(receiverName);
mb = receiver.getMessageLog();
}
// actions 'deletemessage' and 'resendmessage' not allowed for messageLog
if ("export selected".equalsIgnoreCase(action)) {
performAction(adapter, null, action, mb, messageId, selected, request, response);
}
} else {
ReceiverBase receiver = (ReceiverBase) adapter.getReceiverByName(receiverName);
if (receiver == null) {
error("cannot find Receiver [" + receiverName + "]", null);
return null;
}
mb = receiver.getErrorStorage();
if (performAction(adapter, receiver, action, mb, messageId, selected, request, response))
return null;
listener = receiver.getListener();
}
try {
logCount = "(" + ((ITransactionalStorage) mb).getMessageCount() + ")";
} catch (Exception e) {
log.warn(e);
logCount = "(?)";
}
try {
if ("showmessage".equalsIgnoreCase(action)) {
Object rawmsg = mb.browseMessage(messageId);
String msg = null;
if (listener != null) {
msg = listener.getStringFromRawMessage(rawmsg, null);
} else {
msg = (String) rawmsg;
}
if (StringUtils.isEmpty(msg)) {
msg = "<no message found>";
}
String type = request.getParameter("type");
if (StringUtils.isEmpty(type)) {
type = viewAs;
}
FileViewerServlet.showReaderContents(new StringReader(msg), "msg" + messageId, type, response, "message [" + messageId + "]");
return null;
} else {
IMessageBrowsingIterator mbi = mb.getIterator(startDate, endDate, "true".equals(forceDescStr));
try {
XmlBuilder messages = new XmlBuilder("messages");
messages.addAttribute("storageType", storageType);
messages.addAttribute("action", action);
messages.addAttribute("adapterName", XmlUtils.encodeChars(adapterName));
if ("messagelog".equals(storageType) && StringUtils.isNotEmpty(pipeName)) {
messages.addAttribute("object", "pipe [" + XmlUtils.encodeChars(pipeName) + "] of adapter [" + XmlUtils.encodeChars(adapterName) + "] " + logCount);
messages.addAttribute("pipeName", XmlUtils.encodeChars(pipeName));
} else {
messages.addAttribute("object", "receiver [" + XmlUtils.encodeChars(receiverName) + "] of adapter [" + XmlUtils.encodeChars(adapterName) + "] " + logCount);
messages.addAttribute("receiverName", XmlUtils.encodeChars(receiverName));
}
int messageCount;
for (messageCount = 0; mbi.hasNext(); ) {
IMessageBrowsingIteratorItem iterItem = mbi.next();
try {
String cType = iterItem.getType();
String cHost = iterItem.getHost();
String cId = iterItem.getId();
String cMessageId = iterItem.getOriginalId();
String cCorrelationId = iterItem.getCorrelationId();
String comment = iterItem.getCommentString();
Date insertDate = iterItem.getInsertDate();
String cLabel = iterItem.getLabel();
if (StringUtils.isNotEmpty(typeMask) && !cType.startsWith(typeMask)) {
continue;
}
if (StringUtils.isNotEmpty(hostMask) && !cHost.startsWith(hostMask)) {
continue;
}
if (StringUtils.isNotEmpty(currentIdMask) && !cId.startsWith(currentIdMask)) {
continue;
}
if (StringUtils.isNotEmpty(messageIdMask) && !cMessageId.startsWith(messageIdMask)) {
continue;
}
if (StringUtils.isNotEmpty(correlationIdMask) && !cCorrelationId.startsWith(correlationIdMask)) {
continue;
}
if (startDate != null && insertDate != null) {
if (insertDate.before(startDate)) {
continue;
}
if (startDateClip) {
String formattedInsertDate = DateUtils.formatOptimal(insertDate);
if (!formattedInsertDate.startsWith(formattedStartDate)) {
continue;
}
}
}
if (StringUtils.isNotEmpty(commentMask) && (StringUtils.isEmpty(comment) || comment.indexOf(commentMask) < 0)) {
continue;
}
if (StringUtils.isNotEmpty(messageTextMask)) {
Object rawmsg = mb.browseMessage(cId);
String msg = null;
if (listener != null) {
msg = listener.getStringFromRawMessage(rawmsg, new HashMap());
} else {
msg = (String) rawmsg;
}
if (msg == null || msg.indexOf(messageTextMask) < 0) {
continue;
}
}
if (StringUtils.isNotEmpty(labelMask) && (StringUtils.isEmpty(cLabel) || !cLabel.startsWith(labelMask))) {
continue;
}
messageCount++;
if (messageCount > skipMessages) {
XmlBuilder message = new XmlBuilder("message");
message.addAttribute("id", cId);
message.addAttribute("pos", Integer.toString(messageCount));
message.addAttribute("originalId", cMessageId);
message.addAttribute("correlationId", cCorrelationId);
message.addAttribute("type", cType);
message.addAttribute("host", cHost);
message.addAttribute("insertDate", DateUtils.format(insertDate, DateUtils.FORMAT_FULL_GENERIC));
if (iterItem.getExpiryDate() != null) {
message.addAttribute("expiryDate", DateUtils.format(iterItem.getExpiryDate(), DateUtils.FORMAT_FULL_GENERIC));
}
message.addAttribute("comment", XmlUtils.encodeChars(iterItem.getCommentString()));
message.addAttribute("label", cLabel);
messages.addSubElement(message);
}
if (getMaxMessages() > 0 && messageCount >= (getMaxMessages() + skipMessages)) {
log.warn("stopped iterating messages after [" + messageCount + "]: limit reached");
break;
}
} finally {
iterItem.release();
}
}
messages.addAttribute("messageCount", Integer.toString(messageCount - skipMessages));
request.setAttribute("messages", messages.toXML());
} finally {
mbi.close();
}
}
} catch (Throwable e) {
error("Caught Exception", e);
throw new ServletException(e);
}
if (!errors.isEmpty()) {
saveErrors(request, errors);
}
log.debug("forward to success");
return (mapping.findForward("success"));
}
Aggregations