I am having a problem with the Referer header being "distorted" by the
WebRequest.addHeader() method.  The header name and the header value
gets changed into: "~~~~~~~" and "~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
which I see when examining the Enumeration en in the debugger.

I am attempting to set two headers in a WebRequest.

code pieces as follows:


// the imports
import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebResponse;
import org.apache.cactus.WebRequest;

// "setting up" the request
    public void beginProcessRequestNotReseeding(WebRequest request) {
        System.out.print("beginProcessRequestNotReseeding");
        request.addHeader("HTTP_SM_USER", strHttpUser);
        request.addHeader("Referer", strRefUrl);
        System.out.println(".....Completed client side begin.");
    }
....
// sending the request

   public void testProcessRequestNotReseeding() {
        System.out.println("testProcessRequestNotReseeding");
        assertFalse("Credential was set to true",
Credentialer.isReseeding());
        Enumeration en = request.getHeaderNames();
        try {
            servlet.processRequest(request, response);
        } catch (javax.servlet.ServletException jsse) {
            // do nothing
        } catch (IOException jioe) {
            // do nothing
        }
        Credentialer.setReseeding(false);
        System.out.println(".....Completed.");
    }

// adding a Basic Authentication to  header then dispatching it to
Sender servlet

.... called by testProcessRequestNotReseeding() ........

    protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
    throws ServletException, IOException {
.......
            String strUser = request.getHeader("HTTP_SM_USER");
            String strPW = Credentialer.getPassword(strUser);
            // put BasicAuthurization data in request header
            try {
                response.setHeader("Authorization", "Basic " +
makeAuthedString(strUser, strPW));
            } catch (EncoderException acnee){
                acnee.printStackTrace();
                // TODO make an HTML Message of failure);
            }
            // send request to Refer url
            request.getRequestDispatcher("/Sender").forward(request,
response);
    }


// the Sender servlet does redirect to back to the referer.
... the final servlet method called

    protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
    throws ServletException, IOException {
      String strRefURL = request.getHeader("Referer");
      response.sendRedirect(strRefURL);
    }


The String strRefUrl is set to null so the sendRedirect of course fails.

I have checked the W3C HTTP docs and it appears the the Referer name and
value are both Strings.


Any assistance is appreciated.

Best Regards,
Bill





Willie (Bill) Armstrong
Sun Certified Programmer for the Java 2 Platform 1.4


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to