123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: ps
- (C) Copyright IBM Corp. 2005, 2011
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- -->
- <!-- $Header: $ -->
- <!-- $DateTime: 2004/09/10 23:21:26 $ -->
- <!-- $Change: 9691 $ -->
- <!--
- Cognos Portal Services
- CPS Assembler Web Adapter
- -->
- <xts:morphlet xmlns:xts="http://developer.cognos.com/schemas/xts/">
- <xts:block id="state-cache" nodelist="envelope, header, env, http, cookies" condition=".[not(/root/env/param[@name = 'wsdl'])]" mandatory="false" type="exec" mode="interpret" processor="XSLT">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="/cps4/common/logicsheets/soaplogic.xslt"/>
-
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:soap="http://developer.cognos.com/schemas/cps/logic/soap"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:cm="http://developer.cognos.com/schemas/bibus/3/"
- exclude-result-prefixes="xtsext">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
-
- <!--
- determine requested portal package and pagelet path
- -->
- <xsl:variable name="cps-package">/connection</xsl:variable>
- <xsl:variable name="package-name" select="xtsext:web64encode($cps-package, false())"/>
-
- <pf:sessionpassport/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <state>
- <xts:function name="TDSRequest">
- <xts:param name="action">get</xts:param>
- <xts:param name="session-id"><xsl:value-of select="$passport"/></xts:param>
- <xts:param name="map-id"><xsl:value-of select="'portlets'"/></xts:param>
- <xts:param name="name"><xsl:value-of select="$package-name"/></xts:param>
- </xts:function>
- </state>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="state-decode" nodelist="state" dependency="state-cache" type="exec" mode="interpret" processor="XSLT">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <decoded>
- <xts:transform processor="AsmStateDecode">
- <xsl:copy-of select="/root/state/*"/>
- </xts:transform>
- </decoded>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
-
- <xts:block id="resource" nodelist="env, decoded" dependency="state-decode" type="exec" mode="interpret" processor="XSLT">
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- xmlns:m="urn:oasis:names:tc:wsrp:v1:types"
- xmlns:cps="http://developer.cognos.com/schemas/cps/asm/objects/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:xos="http://developer.cognos.com/schemas/xts/output/"
- xmlns:trustedSessionHelper="com.cognos.portal.utils.TrustedSessionHelper">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
-
- <xsl:variable name="params" select="/root/env/param"/>
- <xsl:variable name="wsrp-url" select="$params[@name = 'wsrp-url']"/>
- <xsl:variable name="cps-urltoken" select="$params[@name = 'cps-urltoken']"/>
-
- <xsl:variable name="wsrp-requiresRewrite" select="$params[@name = 'wsrp-requiresRewrite']"/>
- <xsl:variable name="cps-producerId" select="$params[@name = 'cps-producerId']"/>
- <xsl:variable name="package-state" select="/root/decoded/cps:packageState"/>
- <xsl:variable name="cookies" select="$package-state/cps:producerRuntime[cps:id = $cps-producerId]/cps:cookies/cps:cookie"/>
-
- <xsl:template match="/">
- <xts:sequence>
- <xts:append select="/root/output">
- <xsl:choose>
- <xsl:when test="trustedSessionHelper:staticVeifyBase64HMAC(string($cps-urltoken), string($wsrp-url)) and xtsext:cafaction('checkurlhostdomain_null', $wsrp-url) = 'true'">
- <xsl:variable name="wsrp-url-with-params">
- <xsl:value-of select="$wsrp-url"/>
- <xsl:for-each select="$params[not(starts-with(@name,'wsrp-') or @name = 'b_action' or @name = 'm' or @name = 'm_state')]">
- <xsl:choose>
- <xsl:when test="contains($wsrp-url, '?') or position() > 1">
- <xsl:text>&</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>?</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="@name"/>
- <xsl:text>=</xsl:text>
- <xsl:value-of select="xtsext:urlencode(.)"/>
- </xsl:for-each>
- </xsl:variable>
- <xts:request protocol="GET" target="{ $wsrp-url-with-params }" option="part">
- <xsl:if test="$cookies">
- <!-- recreate cookies -->
- <xts:param name="header">
- <xsl:text>Cookie=</xsl:text>
- <xsl:for-each select="$cookies">
- <xsl:value-of select="concat(@name, '=', .)"/>
- <xsl:if test="position() != last()">
- <xsl:text>; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xts:param>
- </xsl:if>
- </xts:request>
- </xsl:when>
- <xsl:otherwise>
- <xos:statusCode xmlns:xos="http://developer.cognos.com/schemas/xts/output/">400</xos:statusCode>
- </xsl:otherwise>
- </xsl:choose>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- </xts:morphlet>
|