You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by David Duhme <DD...@karmann.com> on 2004/10/04 14:27:41 UTC

SSO between Cocoon and Lotus Domino

Hi there,

does anybody know how to achieve SSO between Cocoon and Lotus Domino?
I desperately need a solution for that problem because this is a central 
point in
my project with Cocoon.

I´m using cocoon version 2.1.5 running on a tomcat 5.0.28 server. What I´m
trying to do is create a pipeline which reads an XML data stream out of
a domino database (domino version 6.5.2) and transforms it into HTML.

Here´s my first effort:

...
<map:pipeline>
        <map:match pattern="index.html">
                <map:generate type="file" src="
http://<domino-server>/<domino-database>/<viewname>?ReadViewEntries"/>
                <map:transform type="xsl" src="dominoview2html.xsl"/>
                <map:serialize type="html"/>
        </map:match>
        ...
</map:pipeline>
...

Before calling the pipeline I authenticated the user at the domnio server 
so that 
I have a LtpaToken cookie in my browser. But when the pipeline executes I 
get
the following server error:

org.xml.sax.SAXParseException: White spaces are required between publicId 
and systemId

I read about a bug in the xalan processor which should produce the same 
error but applying the patch
didn´t solve the problem. What lead me to the point that this could be an 
access rights issue is the fact
that when I allow access rights to 'anonymous' on the domino databse the 
pipeline executes without errors.

So I have to tell the domino server somehow that there´s an existing 
session but I don´t know how to do
it through a pipeline.

Thanks a lot for your help.

David.

Here´s the complete stacktrace:

Original Exception: org.xml.sax.SAXParseException: White spaces are 
required between publicId and systemId.
                 at 
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown 
Source)
                 at 
org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
                 at 
org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
                 at 
org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
                 at 
org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
                 at 
org.apache.xerces.impl.XMLScanner.scanExternalID(Unknown Source)
                 at 
org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl(Unknown 
Source)
                 at 
org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown 
Source)
                 at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
                 at 
org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
                 at 
org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
                 at org.apache.xerces.parsers.XMLParser.parse(Unknown 
Source)
                 at 
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
                 at 
org.apache.excalibur.xml.impl.JaxpParser.parse(JaxpParser.java:296)
                 at 
org.apache.excalibur.xml.impl.JaxpParser.parse(JaxpParser.java:315)
                 at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:252)
                 at 
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:116)
                 at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:545)
                 at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:173)
                 at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:490)
                 at 
org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:120)
                 at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
                 at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
                 at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
                 at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
                 at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
                 at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
                 at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
                 at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
                 at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:103)
                 at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
                 at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
                 at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
                 at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
                 at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
                 at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
                 at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
                 at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
                 at org.apache.cocoon.Cocoon.process(Cocoon.java:639)
                 at 
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1098)
                 at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
                 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
                 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
                 at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
                 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                 at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                 at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
                 at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
                 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                 at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                 at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
                 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                 at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
                 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
                 at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                 at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                 at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                 at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                 at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
                 at 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
                 at 
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
                 at 
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
                 at 
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
                 at 
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
                 at 
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
                 at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
                 at java.lang.Thread.run(Thread.java:534)



Re: SSO between Cocoon and Lotus Domino

Posted by Gunter D'Hondt <gu...@sofico.be>.
David,

What did you all set up on your Lotus Notes-server to achieve the "
http://<domino-server>/<domino-database>/<viewname>?ReadViewEntries" 
principle? I'd like to get some data from the LN-databases too and publish 
them thru cocoon.

For your problem: have you tried building a simple cocoon action that sets 
the request/session information that is needed to access the server?

Regards,
Gunter D'Hondt







David Duhme <DD...@karmann.com> 
04/10/2004 14:27
Please respond to
users@cocoon.apache.org


To
users@cocoon.apache.org
cc

Subject
SSO between Cocoon and Lotus Domino







Hi there, 

does anybody know how to achieve SSO between Cocoon and Lotus Domino? 
I desperately need a solution for that problem because this is a central 
point in 
my project with Cocoon. 

I´m using cocoon version 2.1.5 running on a tomcat 5.0.28 server. What I´m 

trying to do is create a pipeline which reads an XML data stream out of 
a domino database (domino version 6.5.2) and transforms it into HTML. 

Here´s my first effort: 

... 
<map:pipeline> 
        <map:match pattern="index.html"> 
                <map:generate type="file" 
src="http://<domino-server>/<domino-database>/<viewname>?ReadViewEntries"/> 

                <map:transform type="xsl" src="dominoview2html.xsl"/> 
                <map:serialize type="html"/> 
        </map:match> 
        ... 
</map:pipeline> 
... 

Before calling the pipeline I authenticated the user at the domnio server 
so that 
I have a LtpaToken cookie in my browser. But when the pipeline executes I 
get 
the following server error: 

org.xml.sax.SAXParseException: White spaces are required between publicId 
and systemId 

I read about a bug in the xalan processor which should produce the same 
error but applying the patch 
didn´t solve the problem. What lead me to the point that this could be an 
access rights issue is the fact 
that when I allow access rights to 'anonymous' on the domino databse the 
pipeline executes without errors. 

So I have to tell the domino server somehow that there´s an existing 
session but I don´t know how to do 
it through a pipeline. 

Thanks a lot for your help. 

David. 

Here´s the complete stacktrace: 

Original Exception: org.xml.sax.SAXParseException: White spaces are 
required between publicId and systemId.
                at 
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown 
Source)
                at 
org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
                at 
org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
                at 
org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
                at 
org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
                at 
org.apache.xerces.impl.XMLScanner.scanExternalID(Unknown Source)
                at 
org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl(Unknown 
Source)
                at 
org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown 
Source)
                at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
                at 
org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
                at 
org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
                at org.apache.xerces.parsers.XMLParser.parse(Unknown 
Source)
                at 
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
                at 
org.apache.excalibur.xml.impl.JaxpParser.parse(JaxpParser.java:296)
                at 
org.apache.excalibur.xml.impl.JaxpParser.parse(JaxpParser.java:315)
                at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:252)
                at 
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:116)
                at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:545)
                at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:173)
                at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:490)
                at 
org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:120)
                at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
                at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
                at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
                at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
                at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
                at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
                at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
                at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
                at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:103)
                at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
                at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
                at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
                at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
                at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
                at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
                at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
                at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
                at org.apache.cocoon.Cocoon.process(Cocoon.java:639)
                at 
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1098)
                at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
                at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
                at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
                at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
                at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
                at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
                at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
                at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
                at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
                at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
                at 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
                at 
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
                at 
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
                at 
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
                at 
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
                at 
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
                at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
                at java.lang.Thread.run(Thread.java:534)