|
From: <pe...@us...> - 2003-09-22 19:24:37
|
Update of /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/contracts/nsauth
In directory sc8-pr-cvs1:/tmp/cvs-serv4908/src/java/org/neuclear/contracts/nsauth
Modified Files:
AuthenticationTicket.java
Log Message:
More fixes throughout to problems caused by renaming.
Index: AuthenticationTicket.java
===================================================================
RCS file: /cvsroot/neuclear/neuclear-id/src/java/org/neuclear/contracts/nsauth/AuthenticationTicket.java,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** AuthenticationTicket.java 19 Sep 2003 14:41:44 -0000 1.1.1.1
--- AuthenticationTicket.java 22 Sep 2003 19:24:00 -0000 1.2
***************
*** 12,16 ****
import org.dom4j.Element;
import org.dom4j.Namespace;
- import org.neuclear.crypto.CryptoTools;
import org.neuclear.id.NameSpace;
import org.neuclear.id.NamedObject;
--- 12,15 ----
***************
*** 18,23 ****
import org.neuclear.id.signrequest.SignatureRequest;
import org.neuclear.time.TimeTools;
! import org.neuclear.utils.NeudistException;
! import org.neuclear.utils.Utility;
import java.security.PrivateKey;
--- 17,23 ----
import org.neuclear.id.signrequest.SignatureRequest;
import org.neuclear.time.TimeTools;
! import org.neudist.crypto.CryptoTools;
! import org.neudist.utils.NeudistException;
! import org.neudist.utils.Utility;
import java.security.PrivateKey;
***************
*** 44,59 ****
* @param siteurl URL for interactive signing service to send user to after signing.
*/
! private AuthenticationTicket(String user,String requester,long validity,String siteurl) throws NeudistException {
! super(createUniqueTicketName(user,requester),AuthenticationTicket.TAG_NAME,AuthenticationTicket.NS_NSAUTH);
! NamedObject userns=NamedObjectFactory.fetchNamedObject(user);
! if (userns==null||(!(userns instanceof NameSpace))||(Utility.isEmpty(((NameSpace)userns).getSigner())))
! throw new NeudistException("The provided namespace: "+user+" doesnt exist or doesnt allow interactive signing");
! Element root=getElement();
! if (validity>=0)
! root.addAttribute(DocumentHelper.createQName("validto",NS_NSAUTH),TimeTools.formatTimeStamp(new Timestamp(new Date().getTime()+validity)));
if (!Utility.isEmpty(siteurl))
! root.addAttribute(DocumentHelper.createQName("href",NS_NSAUTH),siteurl);
}
--- 44,59 ----
* @param siteurl URL for interactive signing service to send user to after signing.
*/
! private AuthenticationTicket(String user, String requester, long validity, String siteurl) throws NeudistException {
! super(createUniqueTicketName(user, requester), AuthenticationTicket.TAG_NAME, AuthenticationTicket.NS_NSAUTH);
! NamedObject userns = NamedObjectFactory.fetchNamedObject(user);
! if (userns == null || (!(userns instanceof NameSpace)) || (Utility.isEmpty(((NameSpace) userns).getSigner())))
! throw new NeudistException("The provided namespace: " + user + " doesnt exist or doesnt allow interactive signing");
! Element root = getElement();
! if (validity >= 0)
! root.addAttribute(DocumentHelper.createQName("validto", NS_NSAUTH), TimeTools.formatTimeStamp(new Timestamp(new Date().getTime() + validity)));
if (!Utility.isEmpty(siteurl))
! root.addAttribute(DocumentHelper.createQName("href", NS_NSAUTH), siteurl);
}
***************
*** 67,75 ****
}
! public static SignatureRequest createAuthenticationRequest(String user, String requester,long validity, String siteurl, String targeturl,PrivateKey signer) throws NeudistException {
! AuthenticationTicket ticket=new AuthenticationTicket(user,requester,validity,siteurl);
! return SignatureRequest.createRequest(requester,targeturl,ticket,signer);
}
/**
* This is just used to create a unique ticket for use by the ticket
--- 67,76 ----
}
! public static SignatureRequest createAuthenticationRequest(String user, String requester, long validity, String siteurl, String targeturl, PrivateKey signer) throws NeudistException {
! AuthenticationTicket ticket = new AuthenticationTicket(user, requester, validity, siteurl);
! return SignatureRequest.createRequest(requester, targeturl, ticket, signer);
}
+
/**
* This is just used to create a unique ticket for use by the ticket
***************
*** 78,97 ****
* @return
*/
! private static String createUniqueTicketName(String userNameSpace,String reqNameSpace) {
// Yeah, yeah there are better ways to do this
! String ms=new Long(new Date().getTime()).toString();
! byte ticketsrc[]=new byte[ms.length()+reqNameSpace.length()];
! System.arraycopy(ms.getBytes(),0,ticketsrc,0,ms.length());
! System.arraycopy(reqNameSpace.getBytes(),0,ticketsrc,ms.length(),reqNameSpace.length());
! String ticket=CryptoTools.formatAsURLSafe(CryptoTools.digest256(ticketsrc));
//Lets reuse ticketsrc for memory reasons
! int offset=ms.length()+1;
if (reqNameSpace.startsWith("neu://"))
! offset+=5;
! for (int i=offset;i<ticketsrc.length;i++) {
! if (ticketsrc[i]==(byte)'/')
! ticketsrc[i]=(byte)'.';
}
/*
--- 79,98 ----
* @return
*/
! private static String createUniqueTicketName(String userNameSpace, String reqNameSpace) {
// Yeah, yeah there are better ways to do this
! String ms = new Long(new Date().getTime()).toString();
! byte ticketsrc[] = new byte[ms.length() + reqNameSpace.length()];
! System.arraycopy(ms.getBytes(), 0, ticketsrc, 0, ms.length());
! System.arraycopy(reqNameSpace.getBytes(), 0, ticketsrc, ms.length(), reqNameSpace.length());
! String ticket = CryptoTools.formatAsURLSafe(CryptoTools.digest256(ticketsrc));
//Lets reuse ticketsrc for memory reasons
! int offset = ms.length() + 1;
if (reqNameSpace.startsWith("neu://"))
! offset += 5;
! for (int i = offset; i < ticketsrc.length; i++) {
! if (ticketsrc[i] == (byte) '/')
! ticketsrc[i] = (byte) '.';
}
/*
***************
*** 101,105 ****
System.arraycopy(ticket,0,ticketName,userNameSpace.length()+1,ticket.length);
*/
! return userNameSpace+'/'+new String(ticketsrc,offset,ticketsrc.length-offset)+'.'+ticket;
}
--- 102,106 ----
System.arraycopy(ticket,0,ticketName,userNameSpace.length()+1,ticket.length);
*/
! return userNameSpace + '/' + new String(ticketsrc, offset, ticketsrc.length - offset) + '.' + ticket;
}
***************
*** 110,116 ****
*/
public Timestamp getValidTo() throws NeudistException {
! String ts=getElement().attributeValue(DocumentHelper.createQName("validto",NS_NSAUTH));
return TimeTools.parseTimeStamp(ts);
}
/**
* The Site URL of the site requesting authentication.
--- 111,118 ----
*/
public Timestamp getValidTo() throws NeudistException {
! String ts = getElement().attributeValue(DocumentHelper.createQName("validto", NS_NSAUTH));
return TimeTools.parseTimeStamp(ts);
}
+
/**
* The Site URL of the site requesting authentication.
***************
*** 118,126 ****
*/
public String getSiteHref() {
! return getElement().attributeValue(DocumentHelper.createQName("href",NS_NSAUTH));
}
public String getTagName() {
! return TAG_NAME;
! }
/**
--- 120,129 ----
*/
public String getSiteHref() {
! return getElement().attributeValue(DocumentHelper.createQName("href", NS_NSAUTH));
}
+
public String getTagName() {
! return TAG_NAME;
! }
/**
***************
*** 146,151 ****
*/
! private static final String TAG_NAME="AuthenticationTicket";
! public static final String URI_NSAUTH="http://neuclear.org/neu/nsauth";
! public static final Namespace NS_NSAUTH=DocumentHelper.createNamespace("nsauth",URI_NSAUTH);
}
--- 149,154 ----
*/
! private static final String TAG_NAME = "AuthenticationTicket";
! public static final String URI_NSAUTH = "http://neuclear.org/neu/nsauth";
! public static final Namespace NS_NSAUTH = DocumentHelper.createNamespace("nsauth", URI_NSAUTH);
}
|