nvm I got it, thanks guys. Also, is looking at the port the efficient way
of doing this?

@Override
    public boolean dispatch(Request request, final Response response)
throws IOException {
        int port = request.getLocalPort();

        PageRenderRequestParameters parameters =
linkEncoder.decodePageRenderRequest(request);

        if (port == 8080) {
            Link link =
linkSource.createPageRenderLinkWithContext(parameters.getLogicalPageName(),
parameters.getActivationContext());
            link.setSecurity(LinkSecurity.SECURE);

            response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
            response.setHeader("Location",
response.encodeRedirectURL(link.toAbsoluteURI()));
            return true;
        }

        return false;
    }



On Tue, Oct 28, 2014 at 3:10 PM, George Christman <gchrist...@cardaddy.com>
wrote:

> Hi Kalle, would you still be setting the status header in the dispatcher?
>
> On Tue, Oct 28, 2014 at 2:30 PM, Kalle Korhonen <
> kalle.o.korho...@gmail.com> wrote:
>
>> The problem is that the status header is rewritten - sendRedirect()
>> implicitly sets 302 by the spec. Set the headers yourself and flush to
>> commit:
>>
>>
>> servletResponse.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
>>         servletResponse.setHeader("Location",
>> servletResponse.encodeRedirectURL(requestUri));
>>         servletResponse.flushBuffer();
>>
>> Kalle
>>
>>
>> On Tue, Oct 28, 2014 at 11:18 AM, George Christman <
>> gchrist...@cardaddy.com>
>> wrote:
>>
>> > I found componentRequestHandler in some tapestry code and when I removed
>> > it, no page. I guess I just needed to return false ;)
>> >
>> > Yup the code is definitely running, I can remove Secure_Page and the
>> page
>> > redirects without issue, however no matter what I setStatus too, it
>> > continues to provide a 302 response. If I sendError to a 301, it will
>> > redirect the browser to a 301 error like it should. Is setStatus the
>> > correct method to use?
>> >
>> > http://localhost:8080/etss/login
>> >
>> > GET /etss/login HTTP/1.1
>> > Host: localhost:8080
>> > User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101
>> > Firefox/32.0
>> > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
>> > Accept-Language: en-US,en;q=0.5
>> > Accept-Encoding: gzip, deflate
>> > DNT: 1
>> > Cookie: shiroSavedRequest=/etss/
>> > Connection: keep-alive
>> >
>> > HTTP/1.1 302 Found
>> > Location: https://localhost/etss/login
>> > Content-Length: 0
>> > Server: Jetty(8.1.14.v20131031)
>> >
>> >
>> > On Tue, Oct 28, 2014 at 1:42 PM, Thiago H de Paula Figueiredo <
>> > thiag...@gmail.com> wrote:
>> >
>> > > On Tue, 28 Oct 2014 15:11:13 -0200, George Christman <
>> > > gchrist...@cardaddy.com> wrote:
>> > >
>> > >  Hi Thiago,
>> > >>
>> > >
>> > > Hi!
>> > >
>> > >  I'm assuming you mean something like this, but I'm not seeing
>> > >> the 301 response. Could you take a look and see if you can spot what
>> I'm
>> > >> doing wrong. Below is the response as well. Thank you.
>> > >>
>> > >
>> > > Are you sure your code was actually called?
>> > >
>> > >
>> > >>
>> > >> public class AccessController implements Dispatcher {
>> > >>
>> > >> @Override
>> > >>     public boolean dispatch(Request request, final Response response)
>> > >> throws IOException {
>> > >>         int port = request.getLocalPort();
>> > >>
>> > >>         PageRenderRequestParameters parameters =
>> > >> linkEncoder.decodePageRenderRequest(request);
>> > >>
>> > >>         if (port == 80) {
>> > >>             Link link =
>> > >> linkSource.createPageRenderLinkWithContext(parameters.
>> > >> getLogicalPageName(),
>> > >> parameters.getActivationContext());
>> > >>
>> >  response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
>> > >>             link.setSecurity(LinkSecurity.SECURE);
>> > >>             response.sendRedirect(link.toAbsoluteURI());
>> > >>             return true;
>> > >>         }
>> > >>
>> > >>         componentRequestHandler.handlePageRender(parameters);
>> > >>         return true;
>> > >>
>> > >
>> > > You should return false when a Dispatcher didn't provide a response,
>> so
>> > > the last line should return false, otherwise no page will ever be
>> > rendered.
>> > > I'm not sure why you've added the componentRequestHandler line.
>> > >
>> > >
>> > > --
>> > > Thiago H. de Paula Figueiredo
>> > > Tapestry, Java and Hibernate consultant and developer
>> > > http://machina.com.br
>> > >
>> > > ---------------------------------------------------------------------
>> > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> > > For additional commands, e-mail: users-h...@tapestry.apache.org
>> > >
>> > >
>> >
>> >
>> > --
>> > George Christman
>> > www.CarDaddy.com
>> > P.O. Box 735
>> > Johnstown, New York
>> >
>>
>
>
>
> --
> George Christman
> www.CarDaddy.com
> P.O. Box 735
> Johnstown, New York
>
>


-- 
George Christman
www.CarDaddy.com
P.O. Box 735
Johnstown, New York

Reply via email to