These will help:

        T5.4: 
http://jumpstart.doublenegative.com.au/jumpstart7/examples/infrastructure/protectingpages
 
<http://jumpstart.doublenegative.com.au/jumpstart7/examples/infrastructure/protectingpages>
        T5.3: 
http://jumpstart.doublenegative.com.au/jumpstart/examples/infrastructure/protectingpages
 
<http://jumpstart.doublenegative.com.au/jumpstart/examples/infrastructure/protectingpages>

Geoff

> On 29 Jul 2015, at 9:23 pm, Poggenpohl, Daniel 
> <[email protected]> wrote:
> 
> Hello,
> 
> I'm using the Layout component for authentication purposes. The general auth 
> process is happening outside of the application via SSO, but all my pages 
> have the Layout component.
> Every time I request a page, The Layout component looks if a session user has 
> been created, and if not, creates the user using a service and stores him in 
> the session.
> Now, at the end of the creation process, back in the Layout component, I want 
> to redirect based on the roles a user has.
> So I decide which page to redirect to based on the role, and do the following:
> 
> response and pageRenderLinkSource are both injected in the component.
> 
> response.sendRedirect(pageRenderLinkSource.createPageRenderLink(getPageForRole()));
> 
> But when redirecting, my Tomcat logs an exception:
> 
> java.lang.NullPointerException
>                at 
> org.apache.tapestry5.internal.services.assets.CompressionAnalyzerImpl.isCompressable(CompressionAnalyzerImpl.java:34)
>                at $CompressionAnalyzer_aae9007a21a5.isCompressable(Unknown 
> Source)
>                at 
> org.apache.tapestry5.internal.services.ResponseCompressionAnalyzerImpl.isCompressable(ResponseCompressionAnalyzerImpl.java:78)
>                at 
> $ResponseCompressionAnalyzer_aae9007a219d.isCompressable(Unknown Source)
>                at 
> org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.openResponseOutputStream(BufferedGZipOutputStream.java:77)
>                at 
> org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.checkForCutover(BufferedGZipOutputStream.java:70)
>                at 
> org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.write(BufferedGZipOutputStream.java:116)
>                at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
>                at sun.nio.cs.StreamEncoder.implClose(Unknown Source)
>                at sun.nio.cs.StreamEncoder.close(Unknown Source)
>                at java.io.OutputStreamWriter.close(Unknown Source)
>                at java.io.BufferedWriter.close(Unknown Source)
>                at java.io.PrintWriter.close(Unknown Source)
>                at 
> org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:85)
>                at 
> $PageResponseRenderer_aae9007a2226.renderPageResponse(Unknown Source)
>                at 
> org.apache.tapestry5.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:85)
>                at 
> $RequestExceptionHandler_aae9007a21a9.handleRequestException(Unknown Source)
>                at 
> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:42)
>                at $RequestHandler_aae9007a21ac.service(Unknown Source)
>                at 
> org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902)
>                at $RequestHandler_aae9007a21ac.service(Unknown Source)
>                at 
> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892)
>                at $RequestHandler_aae9007a21ac.service(Unknown Source)
>                at 
> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
>                at $RequestHandler_aae9007a21ac.service(Unknown Source)
>                at $RequestHandler_aae9007a21a0.service(Unknown Source)
>                at 
> org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253)
>                at 
> org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
>                at $HttpServletRequestHandler_aae9007a21a2.service(Unknown 
> Source)
>                at 
> org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:27)
>                at $HttpServletRequestHandler_aae9007a21a2.service(Unknown 
> Source)
>                at 
> org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
>                at $HttpServletRequestHandler_aae9007a21a2.service(Unknown 
> Source)
>                at 
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
>                at $HttpServletRequestFilter_aae9007a219c.service(Unknown 
> Source)
>                at $HttpServletRequestHandler_aae9007a21a2.service(Unknown 
> Source)
>                at 
> org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
>                at $HttpServletRequestHandler_aae9007a21a2.service(Unknown 
> Source)
>                at $HttpServletRequestHandler_aae9007a219b.service(Unknown 
> Source)
>                at 
> org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
>                at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>                at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>                at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>                at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>                at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:611)
>                at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>                at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>                at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
>                at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>                at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
>                at 
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
>                at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>                at 
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
>                at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown 
> Source)
>                at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown 
> Source)
>                at java.lang.Thread.run(Unknown Source)
> 
> What is the problem here? Can't I send a redirect from a component?
> 
> Or is there a better way to do this? Something that intercepts all requests, 
> creates the session user and redirects if necessary?
> 
> Regards,
> Daniel P.

Reply via email to