|
From: <pe...@us...> - 2003-12-16 17:55:55
|
Update of /cvsroot/neuclear/neuclear-id-sample/src/java/org/neuclear/id/sample
In directory sc8-pr-cvs1:/tmp/cvs-serv13751/src/java/org/neuclear/id/sample
Added Files:
MessageSenderReceiver.java SendMessageServlet.java
Log Message:
Missed the following files when checking in.
--- NEW FILE: MessageSenderReceiver.java ---
package org.neuclear.id.sample;
import org.neuclear.receiver.Receiver;
import org.neuclear.receiver.UnsupportedTransaction;
import org.neuclear.receiver.SimpleReceipt;
import org.neuclear.xml.ElementProxy;
import org.neuclear.id.SignedNamedObject;
import org.neuclear.id.SignedMessage;
import org.neuclear.id.NSTools;
import org.neuclear.id.Identity;
import org.neuclear.id.resolver.NSResolver;
import org.neuclear.id.builders.NamedObjectBuilder;
import org.neuclear.commons.NeuClearException;
import org.neuclear.store.Store;
import org.neuclear.senders.Sender;
import org.dom4j.DocumentHelper;
/**
* Sample Receiver of SignedNamedObjects.
* All this does is to send a copy of the object to the signers receiver.
*/
public class MessageSenderReceiver implements Receiver{
public ElementProxy receive(SignedNamedObject obj) throws UnsupportedTransaction, NeuClearException {
if (obj instanceof SignedMessage) {
String recipient=((SignedMessage)obj).getRecipient();
//Check if recipient is a NEU
if (NSTools.isValidName(recipient) ){
// Resolve Identity
Identity id=NSResolver.resolveIdentity(recipient);
//ID send message
id.receive(obj);
} else
Sender.quickSend(recipient,obj);
}
// Send copy to signer
obj.getSignatory().receive(obj);
return new SimpleReceipt("success");
}
}
--- NEW FILE: SendMessageServlet.java ---
package org.neuclear.id.sample;
import org.neuclear.receiver.ReceiverServlet;
import org.neuclear.commons.servlets.ServletTools;
import org.neuclear.commons.Utility;
import org.neuclear.commons.NeuClearException;
import org.neuclear.commons.crypto.Base64;
import org.neuclear.id.Identity;
import org.neuclear.id.SignedNamedObject;
import org.neuclear.id.builders.NamedObjectBuilder;
import org.neuclear.id.builders.SignedMessageBuilder;
import org.neuclear.id.builders.SignatureRequestBuilder;
import org.neuclear.xml.XMLException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
/**
* Sample ReceiverServlet which sets itself to listen to MessageSenderReceiver.
*/
public class SendMessageServlet extends ReceiverServlet{
public SendMessageServlet() {
setReceiver(new MessageSenderReceiver());
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
final PrintWriter out = response.getWriter();
ServletTools.printHeader(out,request,"Creating Message");
Identity userns=(Identity) request.getUserPrincipal();
String recipient=Utility.denullString(request.getParameter("recipient"));
String subject=Utility.denullString(request.getParameter("recipient"));
String message=Utility.denullString(request.getParameter("message"));
try {
NamedObjectBuilder builder=new SignedMessageBuilder(userns,recipient,subject,message);
builder.sign(getSigner());
SignatureRequestBuilder sigreq=new SignatureRequestBuilder(getServiceid(),userns.getName(),builder,subject);
SignedNamedObject sig=sigreq.sign(getSigner());
out.print("<form action=\"");
out.print(userns.getSigner());
out.print(">\" method=\"POST\"><input name=\"neuclear-request\" value=\"");
out.print(Base64.encode(sig.getEncoded().getBytes()));
out.print(" type=\"hidden\"><input name=\"endpoint\" value=\"");
out.print(request.getServletPath());
out.print(" type=\"hidden\"></form>Transfering to Signing Server");
out.print("<script language=\"javascript\"><!--document.forms[0].submit();--></script>");
} catch (NeuClearException e) {
out.print("<b>error:</b>");
e.printStackTrace(out);
} catch (XMLException e) {
out.print("<b>error:</b>");
e.printStackTrace(out);
}
out.flush();
out.close();
}
}
|