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.