Author: germuska Date: Fri Feb 4 17:01:07 2005 New Revision: 151453 URL: http://svn.apache.org/viewcvs?view=rev&rev=151453 Log: expose an alternate token generation method which takes a String, to help extract ourselves from direct dependencies on the Servlet API. Change the existing generateToken(HttpServletRequest) method to simply pass the session ID in as a token ID.
Modified: struts/core/trunk/src/share/org/apache/struts/util/TokenProcessor.java Modified: struts/core/trunk/src/share/org/apache/struts/util/TokenProcessor.java URL: http://svn.apache.org/viewcvs/struts/core/trunk/src/share/org/apache/struts/util/TokenProcessor.java?view=diff&r1=151452&r2=151453 ============================================================================== --- struts/core/trunk/src/share/org/apache/struts/util/TokenProcessor.java (original) +++ struts/core/trunk/src/share/org/apache/struts/util/TokenProcessor.java Fri Feb 4 17:01:07 2005 @@ -167,8 +167,20 @@ public synchronized String generateToken(HttpServletRequest request) { HttpSession session = request.getSession(); + return generateToken(session.getId()); + + } + + /** + * Generate a new transaction token, to be used for enforcing a single + * request for a particular transaction. + * + * @param id a unique Identifier for the session or other context in + * which this token is to be used. + */ + public synchronized String generateToken(String id) { + try { - byte id[] = session.getId().getBytes(); long current = System.currentTimeMillis(); if (current == previous) { current++; @@ -176,7 +188,7 @@ previous = current; byte now[] = new Long(current).toString().getBytes(); MessageDigest md = MessageDigest.getInstance("MD5"); - md.update(id); + md.update(id.getBytes()); md.update(now); return toHex(md.digest()); } catch (NoSuchAlgorithmException e) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]