105 lines
3.7 KiB
Java
105 lines
3.7 KiB
Java
package de.gurkengewuerz.postfix_rest_send;
|
|
|
|
import fi.iki.elonen.NanoHTTPD;
|
|
import org.json.JSONObject;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* Created by gurkengewuerz.de on 12.07.2017.
|
|
*/
|
|
public class Main extends NanoHTTPD {
|
|
public Main() throws IOException {
|
|
super(8081);
|
|
start(NanoHTTPD.SOCKET_READ_TIMEOUT, false);
|
|
}
|
|
|
|
// http://www.simplejavamail.org/#/debugging
|
|
|
|
public static void main(String[] args) {
|
|
// Mailer m = new Mailer(new ServerConfig("localhost", 25));
|
|
// m.setDebug(true);
|
|
//
|
|
// Email email = new Email();
|
|
// email.setFromAddress("admin@gurkengewuerz.de", "admin@gurkengewuerz.de");
|
|
// email.setReplyToAddress("support@gurkengewuerz.de", "support@gurkengewuerz.de");
|
|
// email.addRecipient("developer@the-town.net", "developer@the-town.net", Message.RecipientType.TO);
|
|
// email.setSubject("Email Test");
|
|
// email.setText("Dies ist ein Email Test von Java.\nHoffentlich bald mit Rest API");
|
|
// email.setTextHTML("<img src='cid:wink1'><b>We should meet up!</b><img src='cid:wink2'>");
|
|
//
|
|
// m.sendMail(email);
|
|
|
|
// HtmlToPlainText formatter = new HtmlToPlainText();
|
|
// formatter.getPlainText()
|
|
try {
|
|
System.out.println("Started");
|
|
new Main();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Response serve(IHTTPSession session) {
|
|
Map<String, String> parms = session.getParms();
|
|
|
|
JSONObject json = new JSONObject("{'error':'not found'}");
|
|
Response.Status status = Response.Status.NOT_FOUND;
|
|
|
|
if (session.getUri().startsWith("/authorize")) {
|
|
if (session.getUri().startsWith("/authorize/add")) {
|
|
String username = parms.get("username");
|
|
String password = parms.get("password");
|
|
|
|
if (username != null && password != null) {
|
|
System.out.println(checkPassword("/var/www/html/tools/functions.inc.php", "md5", "EMailFam.Schuetrumpf@123", "460b7d128333a4be972d4c7bdb0ee142"));
|
|
|
|
|
|
status = Response.Status.OK;
|
|
json = new JSONObject("{'token':''}");
|
|
} else {
|
|
json = new JSONObject("{'error':'username/password is null'}");
|
|
}
|
|
} else if (session.getUri().startsWith("/authorize/revoke")) {
|
|
|
|
}
|
|
} else if (session.getUri().startsWith("/validate/address")) {
|
|
|
|
} else if (session.getUri().startsWith("/send")) {
|
|
|
|
}
|
|
return newFixedLengthResponse(status, "application/json", json.toString());
|
|
}
|
|
|
|
public boolean checkPassword(String path, String encryption, String plain, String dbPW) {
|
|
String crypted = execPHP("-r '$CONF = array(); $CONF[\"encrypt\"] = \"" + encryption + "\"; include \"" + path + "\"; echo(pacrypt(\"" + plain + "\", \"" + dbPW + "\")).\"\\n\";'");
|
|
System.out.println(crypted);
|
|
return crypted.equals(dbPW);
|
|
}
|
|
|
|
public String execPHP(String args) {
|
|
try {
|
|
System.out.println(args);
|
|
String line;
|
|
StringBuilder output = new StringBuilder();
|
|
Process p = Runtime.getRuntime().exec("php " + args);
|
|
BufferedReader input =
|
|
new BufferedReader
|
|
(new InputStreamReader(p.getInputStream()));
|
|
while ((line = input.readLine()) != null) {
|
|
output.append(line);
|
|
System.out.println(line);
|
|
}
|
|
input.close();
|
|
return output.toString();
|
|
} catch (Exception err) {
|
|
err.printStackTrace();
|
|
}
|
|
return "";
|
|
}
|
|
}
|