www in docker support

This commit is contained in:
MaddoScientisto 2026-04-22 18:41:37 +02:00
commit c227fce036
2145 changed files with 399596 additions and 58 deletions

View file

@ -0,0 +1,176 @@
package it.acxent.bank.servlet.setefi;
import it.acxent.bank.setefi.SetefiReq;
import it.acxent.bank.setefi.SetefiResp;
import it.acxent.db.ResParm;
import it.acxent.servlet.AcServlet;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public abstract class MonetaOnlineSvlt extends AcServlet {
protected static final String CMD_GET_RES = "res";
protected static final String CMD_SEND_REQ = "send";
protected final void callJsp(HttpServletRequest req, HttpServletResponse res) {
setJspPageRelative(getResponsePage(req, res), req);
try {
RequestDispatcher rd = getServletContext()
.getRequestDispatcher(getJspPage(req));
rd.forward((ServletRequest)req, (ServletResponse)res);
} catch (Exception e) {
handleDebug(e);
}
}
protected String getResponsePage(HttpServletRequest req, HttpServletResponse res) {
String temp = getParm("MONETAONLINE_RESPONSE_PAGE")
.getTesto();
if (temp.isEmpty())
return "http://www.miodominio.it/xxx_response-#-@.html";
return temp;
}
protected void processRequest(HttpServletRequest req, HttpServletResponse res) {
String cmd = getCmd(req).toLowerCase();
if (cmd.equals("send")) {
sendRequest(req, res);
} else if (getCmd(req).equals("risultato") ||
getCmd(req).equals("result")) {
preparePaymentResultPage(req, res);
setJspPage(getResponseJsp(req, res), req);
callJsp(req, res);
} else {
getResponse(req, res);
}
}
protected boolean isSecureServlet(HttpServletRequest req) {
return false;
}
protected void sendRequest(HttpServletRequest req, HttpServletResponse res) {
try {
boolean testMode = (getParm("TEST").getNumeroInt() == 1);
SetefiReq setefiReq = new SetefiReq();
fillObject(req, setefiReq);
String theUrl = "https://test.monetaonline.it/monetaweb/hosted/init/http";
if (testMode) {
theUrl = "https://test.monetaonline.it/monetaweb/hosted/init/http";
setefiReq.setId(getParm("MONETAONLINE_ID").getTesto());
setefiReq.setPassword(getParm("MONETAONLINE_PASSWORD")
.getTesto());
} else {
setefiReq.setId("99999999");
setefiReq.setPassword("99999999");
}
setefiReq.setResponseurl(getResponseUrl(req, res));
String rawData = setefiReq.getRawdata();
if (!rawData.equals("")) {
String type = "application/x-www-form-urlencoded";
String encodedData = rawData;
URL u = new URL("https://test.monetaonline.it/monetaweb/hosted/init/http");
HttpURLConnection conn = (HttpURLConnection)u.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", type);
conn.setRequestProperty("Content-Length",
String.valueOf(encodedData.length()));
conn.connect();
DataOutputStream os = new DataOutputStream(
conn.getOutputStream());
os.writeBytes(encodedData);
os.flush();
os.close();
BufferedReader read = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String line = read.readLine();
String html = "";
while (line != null) {
html = html + html;
line = read.readLine();
}
int idx2dot = html.indexOf(":");
String paymentId = html.substring(0, html.indexOf(":"));
String url = html.substring(idx2dot + 1, html.length());
String paymentUrl = url + "?paymentid=" + url;
System.out.println(paymentUrl);
ResParm rp = recordPaymentId(req, res, paymentId);
if (rp.getStatus()) {
res.sendRedirect(paymentUrl);
} else {
setJspPageRelative(getResponsePage(req, res), req);
sendMessage(req, rp.getErrMsg());
getResponse(req, res);
callJsp(req, res);
}
} else {
setJspPageRelative(getResponsePage(req, res), req);
String temp = "ERRORE!!MonetaOnline Svlt! Impossibile creare url di richiesta!";
sendMessage(req, temp);
getResponse(req, res);
handleDebug(temp, 2);
callJsp(req, res);
}
} catch (Exception e) {
handleDebug(e);
}
}
protected String getResponseJsp(HttpServletRequest req, HttpServletResponse res) {
String temp = getParm("MONETAONLINE_RESPONSE_JSP").getTesto();
if (temp.isEmpty())
return "/payResMO.jsp";
return temp;
}
protected abstract ResParm recordPaymentId(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse, String paramString);
protected String getResponseUrl(HttpServletRequest req, HttpServletResponse res) {
String temp = getParm("MONETAONLINE_RESPONSE_URL").getTesto();
if (temp.isEmpty())
return "http://www.miodoninio.it/RicevutaMO.abl";
return temp;
}
protected abstract void preparePaymentResultPage(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse);
protected abstract void checkPaymentId(HttpServletRequest paramHttpServletRequest, HttpServletResponse paramHttpServletResponse, SetefiResp paramSetefiResp);
protected void getResponse(HttpServletRequest req, HttpServletResponse res) {
try {
req.setAttribute("responsecode", "000");
req.setAttribute("result", "Accepted");
req.setAttribute("trackid", "6");
req.setAttribute("paymentid", "316061656072333389");
req.setAttribute("tranid", "316061656072333389");
SetefiResp setefiResp = new SetefiResp();
fillObject(req, setefiResp);
checkPaymentId(req, res, setefiResp);
String theUrl = getResponsePage(req, res).replace("#",
setefiResp.getTrackid());
theUrl = theUrl.replace("@",
String.valueOf(setefiResp.getPaymentid()));
System.out.println("redirect url :" + theUrl);
sendHtmlMsgResponse(req, res, "redirect=" + theUrl);
} catch (Exception e) {
setJspPageRelative(getResponsePage(req, res), req);
String temp = "ERRORE!!MONETAONLINE ! Risposta non valida: ";
sendMessage(req, temp);
handleDebug(temp, 2);
setJspPage(getResponsePage(req, res), req);
callJsp(req, res);
callJsp(req, res);
}
}
}