cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Guillard <pguill...@citycita.net>
Subject Re: [Auth-FW] Edit authentication/data nodes
Date Tue, 05 Apr 2005 13:30:34 GMT
Thanks!

Jan Hoskens wrote:

> Philippe Guillard wrote:
>
>> Thanks a lot Jan,
>>
>> Good idea to use another session context and not the one used by 
>> authentication framwork for the elements i need to save.  I also 
>> thought none of the set functions you shown here where available, 
>> i'll try.
>>
>> Just one question reminds: doc says session framwork provides the 
>> session context that is XML data storage in the session, as i need to 
>> store a few parameters without hierarchy, i still wonder what is the 
>> advantage of using it instead of simply use sesion attributes 
>> (session.setAttribute("nickname", "foo")) ?
>
>
> As far as I know a sessioncontext is like a container in your session. 
> Every application can have it's own 'private' space in the session to 
> store it's objects. This way the authentication framework reserves the 
> context 'authentication' for its needs. If you only need to store some 
> global attributes, the user session will be enough. If you need xml 
> storage or want to have separate spaces for different goals/apps you 
> might want to use contexts.
>
> Well that's my point of view of course, ;-)
>
> Kind regards,
> Jan
>
>>
>> Regards,
>>
>> Phil
>>
>>
>>
>> Jan Hoskens wrote:
>>
>>> Hi,
>>>
>>> When I first used cocoon, I had xsp's all around. If I remember 
>>> correctly, I did something like this to get the value from the 
>>> authentication session:
>>>
>>> <xsp:page
>>>     xmlns:xsp="http://apache.org/xsp"
>>>     xmlns:xsp-session-fw="http://apache.org/xsp/session-fw/1.0">
>>>
>>> <xsp:logic>
>>>     String email = <xsp-session-fw:getxml  context="authentication" 
>>> path="/authentication/data/UserEmail"/>;
>>>     String login = <xsp-session-fw:getxml  context="authentication"  
>>> path="/authentication/ID"/>;
>>> </xsp:logic>
>>>
>>> email: <xsp:expr>email</xsp:expr> user: <xsp:expr>login</xsp-expr>
>>>
>>> I never changed the value though and looking at the session-fw.xsl 
>>> stylesheet, it seems that there isn't a way to set values. You may
>>>
>>> Nowadays, I don't use xsp anymore. I now use flowscript to access 
>>> the authenticationsession and pass it in my bizdata:
>>>
>>> var bizdata = new Object();
>>> var contextMan = null;
>>> try
>>> {
>>>
>>> contextMan 
>>> =cocoon.getComponent(Packages.org.apache.cocoon.webapps.session.ContextManager.ROLE);

>>>
>>> var sessionContext = contextMan.getContext("authentication");
>>> var id = 
>>> documentFragment2String(sessionContext.getXML("/authentication/ID"));
>>> var userEmail = 
>>> documentFragment2String(sessionContext.getXML("/authentication/data/UserEmail"));

>>>
>>> bizdata["id"] = id;
>>> bizdata["email"] = userEmail;
>>> cocoon.sendPage("mypage", bizdata);
>>> }
>>> finally
>>> {
>>>     cocoon.releaseComponent(contextMan);
>>> }          Pay attention to some restrictions on the 
>>> authenticationsession, there are some functions that are not 
>>> available although the session interface does define them. Look at 
>>> the api's to see what you can do with the authenticationsession: 
>>> http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/webapps/authentication/context/AuthenticationContext.html

>>>
>>>
>>> If you need to alter a lot of data in the session, you may want to 
>>> consider adding a session context for this specific task alone (so 
>>> not touching the authentication session):
>>>
>>> contextManager 
>>> =cocoon.getComponent(Packages.org.apache.cocoon.webapps.session.ContextManager.ROLE);

>>>
>>> if (!contextManager.existsContext("Information"))
>>> {
>>>     contextManager.createContext("Information", null, null);
>>> }
>>> var sessionContext = contextManager.getContext("Information");
>>> // showing how to set a result of a pipeline as xml in a sessioncontext
>>> var pipelineUtil = 
>>> cocoon.createObject(Packages.org.apache.cocoon.components.flow.util.PipelineUtil);

>>>
>>> var document = 
>>> pipelineUtil.processToDOM("mySessionSettingsToChange", null);
>>> var documentFragment = document.createDocumentFragment();
>>> documentFragment.appendChild(document.getDocumentElement().cloneNode(true));

>>>
>>> sessionContext.setXML("Bestuur", documentFragment);
>>>
>>> ...
>>> sessionContext.removeXML("...");
>>> sessionContext.setAttribute("...", null);
>>> ...
>>>
>>> If you don't want to use flowscript, the same can be done with the 
>>> session tags:
>>>
>>> <session:createcontext name="Information"/>
>>> <session:setxml context="Information" path="/mypath/">
>>> <cinclude:include>
>>>     <xsp:attribute 
>>> name="src"><xsp:expr>myDynamicFormedPipelinePath</xsp:expr></xsp:attribute>

>>>
>>> </cinclude:include>
>>> </session:setxml>
>>>               There are probably some more ways to do the same so 
>>> you may want to look around a bit longer.
>>>
>>> Kind regards,
>>> Jan
>>>
>>> Philippe Guillard wrote:
>>>
>>>> Hi,
>>>>
>>>> I use Portal, so i use Auth-Fw, and want to change the data part 
>>>> for a user without asking him to sign-in again.
>>>>
>>>> Lest's say i put nickname in the data section,
>>>> <authentication>
>>>>    <ID>foo_id</ID>
>>>>    <data>foo_nickname</data>
>>>> </authentication>
>>>> and i want to afford the possibility for the user to change it's 
>>>> Nickname.
>>>>
>>>> Is there a simple way?  Today i can get the nickname from Sitemap 
>>>> (InputModule), Flow, Java, XspSessionFw logicsheet, but i don't 
>>>> know a simple way to use the set functions.
>>>> AuthenticationFw/ SessionContext seems to be there to make session 
>>>> attributes manipulation easier, so i think i lack some 
>>>> understanding on it.
>>>>
>>>> For the moment i just use the "normal" Session object doing this 
>>>> after the <autentication> node made in XSP:
>>>> <authentication>
>>>>    <ID>foo_id</ID>
>>>>    <data></data>
>>>> </authentication>
>>>> <xsp:logic>
>>>>    session.setAttribute("nickname", "foo_nickname"); </xsp:logic>
>>>> (i'm sad to mix these 2 things and i do not use the framework 
>>>> provided...)
>>>>
>>>> Regards,
>>>>
>>>> Phil
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>>>> For additional commands, e-mail: users-help@cocoon.apache.org
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>>> For additional commands, e-mail: users-help@cocoon.apache.org
>>>
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>> For additional commands, e-mail: users-help@cocoon.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Mime
View raw message