Skip to content

Commit

Permalink
Showing 5 changed files with 124 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -26,6 +26,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Vector;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -39,8 +40,9 @@
import nl.nn.adapterframework.core.IPipe;
import nl.nn.adapterframework.core.IReceiver;
import nl.nn.adapterframework.core.ISender;
import nl.nn.adapterframework.core.IThreadCountControllable;
import nl.nn.adapterframework.core.PipeLine;
import nl.nn.adapterframework.extensions.sap.SapListener;
import nl.nn.adapterframework.extensions.sap.SapSender;
import nl.nn.adapterframework.ftp.FtpSender;
import nl.nn.adapterframework.http.HttpSender;
import nl.nn.adapterframework.http.WebServiceSender;
@@ -86,20 +88,23 @@ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServlet
}

XmlBuilder securityItems = new XmlBuilder("securityItems");
addRegisteredAdapters(securityItems);
Vector sapSystems = new Vector();
addRegisteredAdapters(securityItems, sapSystems);
addApplicationDeploymentDescriptor(securityItems);
addSecurityRoleBindings(securityItems);
addJmsRealms(securityItems);
addSapSystems(securityItems, sapSystems);
addAuthEntries(securityItems);

request.setAttribute("secItems", securityItems.toXML());
log.debug("SECITEMS ["+securityItems.toXML()+"]");

// Forward control to the specified success URI
log.debug("forward to success");
return (mapping.findForward("success"));
}

private void addRegisteredAdapters(XmlBuilder securityItems) {
private void addRegisteredAdapters(XmlBuilder securityItems, Vector sapSystems) {
XmlBuilder registeredAdapters = new XmlBuilder("registeredAdapters");
securityItems.addSubElement(registeredAdapters);
for (int j = 0; j < config.getRegisteredAdapters().size(); j++) {
@@ -126,6 +131,17 @@ private void addRegisteredAdapters(XmlBuilder securityItems) {
receiverXML.addAttribute("senderName", sender.getName());
}
}
if (receiver instanceof ReceiverBase) {
ReceiverBase rb = (ReceiverBase) receiver;
IListener listener = rb.getListener();
if (listener instanceof SapListener) {
SapListener sapListener = (SapListener) listener;
Object o = sapListener.getSapSystem();
if (!sapSystems.contains(o)) {
sapSystems.add(o);
}
}
}
}
adapterXML.addSubElement(receiversXML);
}
@@ -218,6 +234,14 @@ private void addRegisteredAdapters(XmlBuilder securityItems) {
addCertificateInfo(certElem, certificateUrl, certificateCf.getPassword(), keystoreType, "Certificate chain");
}
}
} else {
if (sender instanceof SapSender) {
SapSender sapSender = (SapSender) sender;
Object o = sapSender.getSapSystem();
if (!sapSystems.contains(o)) {
sapSystems.add(o);
}
}
}
}
}
@@ -396,7 +420,32 @@ private String getConnectionPoolProperties(String confResString, String provider
}
return connectionPoolProperties;
}



private void addSapSystems(XmlBuilder securityItems, Vector sapSystems) {
XmlBuilder sss = new XmlBuilder("sapSystems");
securityItems.addSubElement(sss);
Iterator iter = sapSystems.iterator();
while (iter.hasNext()) {
XmlBuilder ss = new XmlBuilder("sapSystem");
sss.addSubElement(ss);
Object o = iter.next();
if (o instanceof nl.nn.adapterframework.extensions.sap.jco3.SapSystem) {
nl.nn.adapterframework.extensions.sap.jco3.SapSystem sapSystem3 = (nl.nn.adapterframework.extensions.sap.jco3.SapSystem) o;
ss.addAttribute("name", sapSystem3.getName());
XmlBuilder infoElem = new XmlBuilder("info");
infoElem.setCdataValue(sapSystem3.toString());
ss.addSubElement(infoElem);
} else {
nl.nn.adapterframework.extensions.sap.jco2.SapSystem sapSystem2 = (nl.nn.adapterframework.extensions.sap.jco2.SapSystem) o;
ss.addAttribute("name", sapSystem2.getName());
XmlBuilder infoElem = new XmlBuilder("info");
infoElem.setCdataValue(sapSystem2.toString());
ss.addSubElement(infoElem);
}
}
}

private void addAuthEntries(XmlBuilder securityItems) {
XmlBuilder aes = new XmlBuilder("authEntries");
securityItems.addSubElement(aes);
Original file line number Diff line number Diff line change
@@ -18,6 +18,7 @@
import java.util.Map;

import nl.nn.adapterframework.configuration.ConfigurationException;
import nl.nn.adapterframework.core.HasPhysicalDestination;
import nl.nn.adapterframework.core.IMessageHandler;
import nl.nn.adapterframework.core.IPushingListener;
import nl.nn.adapterframework.core.IbisExceptionListener;
@@ -34,7 +35,7 @@
* @author Jaco de Groot
* @since 5.0
*/
public class SapListener implements IPushingListener {
public class SapListener implements IPushingListener, HasPhysicalDestination {
private int jcoVersion = 3;
private nl.nn.adapterframework.extensions.sap.jco3.SapListener sapListener3;
private nl.nn.adapterframework.extensions.sap.jco2.SapListener sapListener2;
@@ -203,4 +204,27 @@ public void setRequestFieldName(String string) {
}
}

public Object getSapSystem() {
if (jcoVersion == 3) {
try {
return sapListener3.getSapSystem();
} catch (Exception e) {
return null;
}
} else {
try {
return sapListener2.getSapSystem();
} catch (Exception e) {
return null;
}
}
}

public String getPhysicalDestinationName() {
if (jcoVersion == 3) {
return sapListener3.getSapSystemName();
} else {
return sapListener2.getSapSystemName();
}
}
}
Original file line number Diff line number Diff line change
@@ -16,6 +16,7 @@
package nl.nn.adapterframework.extensions.sap;

import nl.nn.adapterframework.configuration.ConfigurationException;
import nl.nn.adapterframework.core.HasPhysicalDestination;
import nl.nn.adapterframework.core.ISenderWithParameters;
import nl.nn.adapterframework.core.SenderException;
import nl.nn.adapterframework.core.TimeOutException;
@@ -32,7 +33,7 @@
* @author Jaco de Groot
* @since 5.0
*/
public class SapSender implements ISenderWithParameters {
public class SapSender implements ISenderWithParameters, HasPhysicalDestination {
private int jcoVersion = -1;
private nl.nn.adapterframework.extensions.sap.jco3.SapSender sapSender3;
private nl.nn.adapterframework.extensions.sap.jco2.SapSender sapSender2;
@@ -235,4 +236,27 @@ public void setRequestFieldName(String string) {
}
}

public Object getSapSystem() {
if (jcoVersion == 3) {
try {
return sapSender3.getSapSystem();
} catch (Exception e) {
return null;
}
} else {
try {
return sapSender2.getSapSystem();
} catch (Exception e) {
return null;
}
}
}

public String getPhysicalDestinationName() {
if (jcoVersion == 3) {
return sapSender3.getSapSystemName();
} else {
return sapSender2.getSapSystemName();
}
}
}
Original file line number Diff line number Diff line change
@@ -15,12 +15,18 @@
*/
package nl.nn.adapterframework.extensions.sap.jco2;

import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Iterator;

import nl.nn.adapterframework.jdbc.JdbcException;
import nl.nn.adapterframework.util.AppConstants;
import nl.nn.adapterframework.util.CredentialFactory;
import nl.nn.adapterframework.util.GlobalListItem;

import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

import com.sap.mw.idoc.IDoc;
@@ -231,9 +237,12 @@ public String getGwserv() {
}

public String toString() {
return ToStringBuilder.reflectionToString(this);

}
//return ToStringBuilder.reflectionToString(this);
return (new ReflectionToStringBuilder(this) {
protected boolean accept(Field f) {
return super.accept(f) && !f.getName().equals("passwd");
}
}).toString(); }

public String getGwhost() {
return gwhost;
Original file line number Diff line number Diff line change
@@ -15,12 +15,15 @@
*/
package nl.nn.adapterframework.extensions.sap.jco3;

import java.lang.reflect.Field;
import java.util.Iterator;

import nl.nn.adapterframework.util.AppConstants;
import nl.nn.adapterframework.util.CredentialFactory;
import nl.nn.adapterframework.util.GlobalListItem;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

import com.sap.conn.idoc.IDocRepository;
@@ -167,8 +170,12 @@ public String getLogPrefix() {
}

public String toString() {
return ToStringBuilder.reflectionToString(this);
}
//return ToStringBuilder.reflectionToString(this);
return (new ReflectionToStringBuilder(this) {
protected boolean accept(Field f) {
return super.accept(f) && !f.getName().equals("passwd");
}
}).toString(); }

public void setHost(String host) {
this.host = host;

0 comments on commit a775e17

Please sign in to comment.