Highlighted

Error Trying To Test External Authentication

VarunParmar

17-02-2009

Posting this message on behalf of Ram Ramgopal, Fidelity
Investments as he's having troubles posting on the forum...



Here's the error and code. Please help!



ERROR:



SWF] C:\Documents and Settings\a246216\My Documents\Flex
Builder 3\External Authentication\bin-debug\Flexternal.swf -
1,392,212 bytes after decompression



warning: unable to bind to property 'userManager' on class
'com.adobe.rtc.session::ConnectSessionContainer'



Cocomo Beta Build # : 0.9



requestInfo
http://connectnow.acrobat.com/fidelity2/ramr?6d952f451ae24061bb93e4c532014e88&mode=xml&x=0.053577031...



Error: Error #2101: The String passed to
URLVariables.decode() must be a URL-encoded query string containing
name/value pairs.



at Error$/throwError()



at flash.net::URLVariables/decode()



at flash.net::URLVariables()



at
com.adobe.rtc.session.sessionClasses::MeetingInfoService/requestInfo()[C:\work\main\connect\cocomo\src\com\adobe\rtc\session\sessionClasses\MeetingInfoService.as:104]



at
com.adobe.rtc.session.sessionClasses::MeetingInfoService/requestRoomInfo()[C:\work\main\connect\cocomo\src\com\adobe\rtc\session\sessionClasses\MeetingInfoService.as:85]



at
com.adobe.rtc.session.managers::SessionManagerAdobeHostedServices/getMeetingInfo()[C:\work\main\connect\cocomo\src\com\adobe\rtc\session\managers\SessionManagerAdobeHostedServices.as:67]



at
com.adobe.rtc.session.managers::SessionManagerAdobeHostedServices/
http://www.adobe.com/2006/connect/cocomo/session/internal::login()[C:\work\main\connect\cocomo\src\c...



at
com.adobe.rtc.session::ConnectSession/login()[C:\work\main\connect\cocomo\src\com\adobe\rtc\session\ConnectSession.as:406]



at
com.adobe.rtc.session::ConnectSessionContainer/login()[C:\work\main\connect\cocomo\src\com\adobe\rtc\session\ConnectSessionContainer.as:209]



at Flexternal/init()[C:\Documents and Settings\a246216\My
Documents\Flex Builder 3\External
Authentication\src\Flexternal.mxml:23]



at
Flexternal/___Flexternal_Application1_creationComplete()[C:\Documents
and Settings\a246216\My Documents\Flex Builder 3\External
Authentication\src\Flexternal.mxml:11]



at flash.events::EventDispatcher/dispatchEventFunction()



at flash.events::EventDispatcher/dispatchEvent()



at
mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298]



at mx.core::UIComponent/set
initialized()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1169]



at
mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]



at Function/
http://adobe.com/AS3/2006/builtin::apply()



at
mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8628]



at
mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8568]



CODE:

Replies

Highlighted

Raff_

Employee

18-02-2009

this example is not really using external authentication.
It's just passing some sort of unique id to the authenticator.



in order to correctly use external authentication you should
have a server-side component that build an external authentication
token (that looks like "exx=bunch-of-base64-stuff") and pass it to
the AdobeHSAuthenticator.





Highlighted

Ram_Ramgopal

19-02-2009

The original code, as provided in the cocomo sdk under flex
example, generates the same error. I passed roomURL and authToken
as part of FlashVars:

"FlashVars",
"roomURL=http://connectnow.acrobat.com/fidelity2/ramr&authToken=6d952f451ae24061bb93e4c532014e88"



The confusion is, it is not clear what should be the query
string. Any help is appreciated.



Error: Error #2101: The String passed to
URLVariables.decode() must be a URL-encoded query string containing
name/value pairs.

at Error$/throwError()

at flash.net::URLVariables/decode()

at flash.net::URLVariables()

at
com.adobe.rtc.session.sessionClasses::MeetingInfoService/requestInfo()[C:\work\main\connect\cocomo\src\com\adobe\rtc\session\sessionClasses\MeetingInfoService.as:104]

at
com.adobe.rtc.session.sessionClasses::MeetingInfoService/requestRoomInfo()[C:\work\main\connect\cocomo\src\com\adobe\rtc\session\sessionClasses\MeetingInfoService.as:85]

at
com.adobe.rtc.session.managers::SessionManagerAdobeHostedServices/getMeetingInfo()[C:\work\main\connect\cocomo\src\com\adobe\rtc\session\managers\SessionManagerAdobeHostedServices.as:67]

at
com.adobe.rtc.session.managers::SessionManagerAdobeHostedServices/
http://www.adobe.com/2006/connect/cocomo/session/internal::login()[C:\work\main\connect\cocomo\src\c...

at
com.adobe.rtc.session::ConnectSession/login()[C:\work\main\connect\cocomo\src\com\adobe\rtc\session\ConnectSession.as:406]

at
com.adobe.rtc.session::ConnectSessionContainer/login()[C:\work\main\connect\cocomo\src\com\adobe\rtc\session\ConnectSessionContainer.as:209]

at Flexternal/init()[C:\Documents and Settings\a246216\My
Documents\Flex Builder 3\External
Authentication\src\Flexternal.mxml:26]

at
Flexternal/___Flexternal_Application1_applicationComplete()[C:\Documents
and Settings\a246216\My Documents\Flex Builder 3\External
Authentication\src\Flexternal.mxml:11]

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at
mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298]

at
mx.managers::SystemManager/preloader_preloaderDoneHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2985]

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at
mx.preloaders::Preloader/displayClassCompleteHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:434]

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at
mx.preloaders::DownloadProgressBar/timerHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\DownloadProgressBar.as:1451]

at
mx.preloaders::DownloadProgressBar/initCompleteHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\DownloadProgressBar.as:1503]

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at
mx.preloaders::Preloader/dispatchAppEndEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:291]

at
mx.preloaders::Preloader/appCreationCompleteHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:442]

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at
mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298]

at mx.core::UIComponent/set
initialized()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1169]

at
mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]

at Function/
http://adobe.com/AS3/2006/builtin::apply()

at
mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8628]

at
mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8568]









SDK example for external authentication:

--------------------

<?xml version="1.0" encoding="utf-8"?>

<mx:Application

xmlns:mx="
http://www.adobe.com/2006/mxml"


layout="absolute"

horizontalAlign="center"

backgroundGradientAlphas="[1.0, 1.0]"

backgroundGradientColors="[#000000, #000000]"

xmlns:rtc="CocomoNameSpace"

xmlns:session="com.adobe.rtc.session.*"

xmlns:pods="com.adobe.rtc.pods.*"

xmlns:collaboration="com.adobe.rtc.collaboration.*"
applicationComplete="init()">



<mx:Script>

<![CDATA[

import mx.controls.Alert;

[Bindable]

private var roomURL:String;

[Bindable]

private var authToken:String;



private function init():void {

roomURL = Application.application.parameters["roomURL"];

authToken = Application.application.parameters["authToken"];


cSession.login();

}

]]>

</mx:Script>

<rtc:AdobeHSAuthenticator authenticationKey="{authToken}"
id="auth"/>



<session:ConnectSessionContainer

roomURL="{roomURL}"

id="cSession"

authenticator="{auth}"

autoLogin="false">



<mx:VBox borderStyle="solid"

paddingTop="10"

paddingBottom="10"

paddingLeft="5"

paddingRight="5"

width="382"

horizontalCenter="0"

top="5"

backgroundColor="#767676"

cornerRadius="15"

borderThickness="3" height="640" horizontalAlign="left">



<mx:Label text="External Authentication Sample"
color="#FAFCFC"

fontWeight="bold" width="340" textAlign="center"
fontSize="12"/>



<mx:Panel width="365" height="200" layout="absolute"

title="Current room users" color="#000000">



<mx:DataGrid

width="100%" height="100%"

dataProvider="{cSession.userManager.userCollection}">

<mx:columns>

<mx:DataGridColumn dataField="displayName"
headerText="User"/>

<mx:DataGridColumn dataField="role"
headerText="Role"/>

</mx:columns>

</mx:DataGrid>

</mx:Panel>



<mx:Panel width="365" height="235" layout="absolute"

title="Default Simple Chat" color="#000000">

<pods:SimpleChat width="100%" height="100%"/>

</mx:Panel>

</mx:VBox>



</session:ConnectSessionContainer>

</mx:Application>





Highlighted

Raff_

Employee

19-02-2009

the authToken parameter should be THE RESULT of
Session.getAuthenticationToken that you called server-side.



The Flex example doesn't run without the appropriate
server-side counterpart (the purpose of External Authentication is
that you authenticate your users on your server, and then create a
token to pass to our server).



What are you running server-side and how did you "make" your
authentication token ?