Our Consumer sends also replace tokens in templates.
However we try to manage both {wsrp-*} and "".
This is especially of interest for the mode and window state in URLs.
Mit freundlichen Gruessen / best regards,
Richard Jacob
______________________________________________________
IBM Lab Boeblingen, Germany
Dept.8288, WebSphere Portal Server Development
Phone: ++49 7031 16-3469 - Fax: ++49 7031 16-4888
Email: mailto:
|---------+----------------------------->
| | Michael Freedman |
| | <Michael.Freedman@|
| | oracle.com> |
| | |
| | 11/26/2003 06:58 |
| | PM |
|---------+----------------------------->
>--------------------------------------------------------------------------------------------------------------------------------------------------|
| |
| To: Subbu Allamaraju <> |
| cc: |
| Subject: Re: [wsrp-interop] Producer is up again |
>--------------------------------------------------------------------------------------------------------------------------------------------------|
Yes, the full WSTP committee still has to approve the interop decision but
the proposal we have put before them is:
New text: These tokens are enclosed in curly braces (i.e. "{" and "}") and
contain the name of the portlet URL parameter which the Producer MUST
replace (using "" for those parameters where the Producer has no value).
However, for the interop demo we just need to find the easiest intersection
between what consumers and prodcuers support. Anywone other then BEA using
URL templates? If so what do you do? For each of the consumers we intend
to use in the demo what do they need/expect to work properly?
-Mike-
Subbu Allamaraju wrote:
David,
The BEA Producer has "usesMethodGet" set on all its portlet
descriptions at the moment (even when our portal sends
methodGetSupported=false), hence our portal filters them all
out when we register them. In the interests of the interop
demo, could you provide some portlets with usesMethodGet=false?
This is a bit tricky, since the producer does not really care about
usesMethodGet. We don't require portlet JSP developers to specify
this at all.
I'll make it return false temporarily.
Also, what was the decision made on template parameters with no
value? Currently these are being left in place by the BEA
producer meaning that all URLS come back with "
#{wsrp-fragmentid}" on the end of them.
This issue is still open for the TC to consider.
Regards,
Subbu
Subbu Allamaraju wrote:
David,
During the WSDL call today, Andre and myself discussed
this issue, and he suggested that the producer could
still include the complete URL in the action so that the
consumer can rewrite it if it wants to. That seems
reasonable for the producer, and it won't break consumer
that don't rewrite the markup.
I'll update the producer and let you know.
Regards,
Subbu
Subbu Allamaraju said the following on 11/26/2003 07:55
AM:
David,
I see the following templates in the monitor:
<ns0:templates>
<ns0:defaultTemplate xsi:nil="1"/>
<ns0:blockingActionTemplate>wsrp_rewrite?wsrp-urlType=blockingAction&amp;wsrp-navigationalState
{wsrp-navigationalState}
&amp;wsrp-interactionState
={wsrp-interactionState}&amp;wsrp-mode
={wsrp-mode}&amp;wsrp-windowState
={wsrp-windowState}&amp;wsrp-fragmentID
={wsrp-fragmentID}/wsrp_rewrite</ns0:blockingActionTemplate>
<ns0:renderTemplate>wsrp_rewrite?wsrp-urlType=render&amp;wsrp-navigationalState
{wsrp-navigationalState}&amp;wsrp-mode
={wsrp-mode}&amp;wsrp-windowState
={wsrp-windowState}&amp;wsrp-fragmentID
={wsrp-fragmentID}/wsrp_rewrite</ns0:renderTemplate>
<ns0:resourceTemplate>wsrp_rewrite?wsrp-urlType=resource&amp;wsrp-url
{wsrp-url}&amp;wsrp-requiresRewrite
={wsrp-requiresRewrite}/wsrp_rewrite</ns0:resourceTemplate>
<ns0:secureDefaultTemplate xsi:nil
="1"/> <ns0:secureBlockingActionTemplate>
<![CDATA[wsrp_rewrite?wsrp-urlType=blockingAction&wsrp-secureURL=true&wsrp-navigationalState
{wsrp-navigationalState}&wsrp-interactionState
={wsrp-interactionState}&wsrp-mode={wsrp-mode}
&wsrp-windowState={wsrp-windowState}
&wsrp-fragmentID
={wsrp-fragmentID}/wsrp_rewrite]]></ns0:secureBlockingActionTemplate>
<ns0:secureRenderTemplate>wsrp_rewrite?wsrp-urlType=render&amp;wsrp-secureURL=true&amp;wsrp-navigationalState
{wsrp-navigationalState}&amp;wsrp-mode
={wsrp-mode}&amp;wsrp-windowState
={wsrp-windowState}&amp;wsrp-fragmentID
={wsrp-fragmentID}/wsrp_rewrite</ns0:secureRenderTemplate>
<ns0:secureResourceTemplate>wsrp_rewrite?wsrp-urlType=resource&amp;wsrp-secureURL=true&amp;wsrp-url
{wsrp-url}&amp;wsrp-requiresRewrite
={wsrp-requiresRewrite}/wsrp_rewrite</ns0:secureResourceTemplate>
</ns0:templates>
Firstly, I did not expect a consumer to send
rewrite tokens in templates. These templates may be
valid from the spec point of view, but can a
consumer rewrite such URLs? Could you elaborate on
how you plan to rewrite these URLs in your
consumer?
Secondly, to make sure that browser does not drop
the query string in the action, our producer
creates hidden fields for each parameter found in
the query string. This explains the the action URL
"wsrp_rewrite" and the hidden params.
I need to look into those &s in the hidden
fields.
Regards,
Subbu
David Ward said the following on 11/26/2003 07:36
AM:
Thanks.
Now I'm seeing the following in the methodGet
portlet (not that our Portal actually
supports method get, but I thought these
results from our test client were
interesting).
<form name="firstStepForm" method="get"
action="wsrp_rewrite">
<input type="hidden" name="wsrp-urlType"
value="blockingAction"/>
<input type="hidden" name="
*amp;wsrp-interactionState*" value
="firststep"/>
<input type="hidden" name="
*amp;wsrp-fragmentID*" value="
*{wsrp-fragmentID}/wsrp_rewrite*"/>
<table>
<tr valign="top">
<td>First Field:</td>
<td>
<input type="text" name
="0{actionForm.field1}" value=""/>
</td>
</tr>
<tr valign="top">
<td>Second Field:</td>
<td>
<input type="text" name
="0{actionForm.field2}" value=""/>
</td>
</tr>
</table>
<br/>
<input type="submit" value="firststep"/>
</form>
It seems that you are trying to 'parse' the
templates we are sending you into, expecting
them to be in query string format, and you
are not recognizing "&" as a separator. I
thought it was only valid to 'instantiate'
templates by expanding out the variables
enclosed in {}. As you can see, the templates
we pass expand out into rewritable URLs, so
end with "/wsrp_rewrite".
I would have expected this as the result from
the method get portlet:, given the template
we sent you
<form name="firstStepForm" method="get"
*action
="wsrp_rewrite?wsrp-urlType=blockingAction&wsrp-interactionState=firststep&**amp;wsrp-fragmentID
**/wsrp_rewrite">*
<table>
<tr valign="top">
<td>First Field:</td>
<td>
<input type="text" name
="0{actionForm.field1}" value=""/>
</td>
</tr>
<tr valign="top">
<td>Second Field:</td>
<td>
<input type="text" name
="0{actionForm.field2}" value=""/>
</td>
</tr>
</table>
<br/>
<input type="submit" value="firststep"/>
</form>
Regards
David
Subbu Allamaraju wrote:
Hi David,
Uploaded the fix just now. I was able
to register our consumer with your
producer last night. I'm going to try
setup a page now.
Regards,
Subbu
David Ward said the following on
11/26/2003 05:10 AM:
Hi Subbu
It seems you have added a
registration port now and your
portlets won't render without a
registration handle. However,
when I try to register, I see the
following request and response.
It seems your producer requires
some sort of authentication. Note
also that the Content-Type
response header is still wrong!
POST /producer/producer HTTP/1.1
Host: ukp16267.uk.oracle.com:5555
Connection: close, TE
TE: trailers, deflate, gzip,
compress
User-Agent: RPT-HTTPClient/0.3-3
SOAPAction:
"urn:oasis:names:tc:wsrp:v1:register"
Accept-Encoding: gzip, x-gzip,
compress, x-compress
Content-type: text/xml; charset
="utf-8"
Content-length: 1010
<?xml version="1.0" encoding
="UTF-8"?>
<env:Envelope xmlns:env="
http://schemas.xmlsoap.org/soap/envelope/
" xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
" xmlns:ns0
="urn:oasis:names:tc:wsrp:v1:types">
<env:Body>
<ns0:register>
<ns0:consumerName>UKP16267</ns0:consumerName>
<ns0:consumerAgent>OraclePortal.9.5</ns0:consumerAgent>
<ns0:methodGetSupported>false</ns0:methodGetSupported>
<ns0:consumerModes>wsrp:view</ns0:consumerModes>
<ns0:consumerModes>wsrp:edit</ns0:consumerModes>
<ns0:consumerModes>wsrp:help</ns0:consumerModes>
<ns0:consumerModes>wsrp:preview</ns0:consumerModes>
<ns0:consumerModes>urn:javax:portlet:mode:custom:edit_defaults</ns0:consumerModes>
<ns0:consumerWindowStates>wsrp:normal</ns0:consumerWindowStates>
<ns0:consumerWindowStates>wsrp:minimized</ns0:consumerWindowStates>
<ns0:consumerWindowStates>wsrp:maximized</ns0:consumerWindowStates>
<ns0:consumerWindowStates>wsrp:solo</ns0:consumerWindowStates>
</ns0:register>
</env:Body>
</env:Envelope>
HTTP/1.1 200 OK
Date: Wed, 26 Nov 2003 12:04:45
GMT
Content-Length: 2854
Content-Type: text/xml; UTF-8
Connection: close
Server: WebLogic Server 8.1 SP2
Mon Nov 17 22:57:23 PST 2003
311144 WebLogic Server 8.1 SP2
Mon Nov 17 22:57:23 PST 2003
311144 WebLogic Server 8.1 SP2
Mon Nov 17 22:57:23 PST 2003
311144
Via: 1.1 inet-nc01 (NetCache
NetApp/5.3.1R3)
<?xml version="1.0" encoding
="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/
">
<soapenv:Body>
<soapenv:Fault xmlns:urn
="urn:oasis:names:tc:wsrp:v1:types">
<faultcode>urn:OperationFailed</faultcode>
<faultstring>[EJB:010160]Security
Violation: User: '<anonymous>'
has insufficient permission to
access EJB: type=<ejb>,
application=producerApp,
module=netuix.jar,
ejb=ConsumerRegistrationService,
method=register,
methodInterface=Local, signature
={java.lang.String,java.lang.String,java.lang.String,java.util.Map}.</faultstring>
<detail>
<detail>com.bea.wsrp.faults.OperationFailedException:
[EJB:010160]Security Violation:
User: '<anonymous>' has
insufficient permission to access
EJB: type=<ejb>,
application=producerApp,
module=netuix.jar,
ejb=ConsumerRegistrationService,
method=register,
methodInterface=Local, signature
={java.lang.String,java.lang.String,java.lang.String,java.util.Map}.
at
com.bea.wsrp.producer.adapter.registration.PortalConsumerRegistrationServiceAdapter.register(PortalConsumerRegistrationServiceAdapter.java:59)
at
com.bea.wsrp.producer.handlers.registration.RegistrationServiceHandler.doRegister(RegistrationServiceHandler.java:185)
at
com.bea.wsrp.producer.handlers.registration.RegistrationServiceHandler.doService(RegistrationServiceHandler.java:119)
at
com.bea.wsrp.producer.WsrpServer.invokeHandler(WsrpServer.java:335)
at
com.bea.wsrp.producer.WsrpServer.doService(WsrpServer.java:297)
at
com.bea.wsrp.producer.WsrpServer.processServiceRequest(WsrpServer.java:210)
at
com.bea.wsrp.producer.WsrpServer.service(WsrpServer.java:169)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
at
weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
com.bea.wsrp.producer.adapter.pageflow.WsrpPageflowFilter.doFilter(WsrpPageflowFilter.java:73)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6356)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)</detail>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Regards
Dave
Subbu Allamaraju wrote:
The producer is up now.
The producer WSDL is at:
http://wsrp.avitek.com:7001/producer/producer?WSDL
The consumer is at:
http://wsrp.avitel.com:7001/consumer/portal.portal
(please note the change in
port number).
There are some known issues
with the portlets that we
obtained from a partner,
and those will be fixed by
tomorrow.
Regards,
Subbu
To unsubscribe from this
mailing list (and be
removed from the roster of
the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/wsrp-interop/members/leave_workgroup.php
.
--
------------------------------------------------------------------------
*David Ward*
Principal Software Engineer
Portlet Technologies
Oracle Portal
Oracle European Development
Centre
520 Oracle Parkway
Thames Valley Park
Reading
Berkshire RG6 1RA
UK *Email:*
<
mailto:>
*Tel:* +44 118 924 5079
*Fax:* +44 118 924 5005
To unsubscribe from this mailing list
(and be removed from the roster of the
OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/wsrp-interop/members/leave_workgroup.php
.
--
------------------------------------------------------------------------
*David Ward*
Principal Software Engineer
Portlet Technologies
Oracle Portal
Oracle European Development Centre
520 Oracle Parkway
Thames Valley Park
Reading
Berkshire RG6 1RA
UK *Email:* <
mailto:>
*Tel:* +44 118 924 5079
*Fax:* +44 118 924 5005
To unsubscribe from this mailing list (and be
removed from the roster of the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/wsrp-interop/members/leave_workgroup.php
.
To unsubscribe from this mailing list (and be removed
from the roster of the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/wsrp-interop/members/leave_workgroup.php
.
--
------------------------------------------------------------------------
*David Ward*
Principal Software Engineer
Portlet Technologies
Oracle Portal
Oracle European Development Centre
520 Oracle Parkway
Thames Valley Park
Reading
Berkshire RG6 1RA
UK
*Email:* <
mailto:>
*Tel:* +44 118 924 5079
*Fax:* +44 118 924 5005
To unsubscribe from this mailing list (and be removed from the roster
of the OASIS TC), go to
http://www.oasis-open.org/apps/org/workgroup/wsrp-interop/members/leave_workgroup.php
.