<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-9331</id>
	<title>Nabble - RIFE - users</title>
	<updated>2008-07-08T04:28:38Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/RIFE---users-f9331.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/RIFE---users-f9331.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-18337000</id>
	<title>Re: Continuable callstack outside a ContinuableObject?</title>
	<published>2008-07-08T04:28:38Z</published>
	<updated>2008-07-08T04:28:38Z</updated>
	<author>
		<name>claas</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content=&quot;text/html;charset=US-ASCII&quot; http-equiv=&quot;Content-Type&quot;&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
Hi Geert,&lt;br&gt;
&lt;br&gt;
At this time I'm not able&amp;nbsp; to use&amp;nbsp; the&amp;nbsp; instrumentation agent due to
some artifacts in Jadex which are not Java 1.5 compatible yet. But I
will try to use the instrumentation agent for the testcases.&lt;br&gt;
&lt;br&gt;
The UnsupportedOperationException is thrown from the pause() method and
I agree that this is because the class isn't loaded from the
continuation classloader at this time.&lt;br&gt;
&lt;br&gt;
My problem is, that I don't understand why - and why only after the
loopback / callback. Simply call pause and later resume the
continuation without a type of cycle in the method-callstack works
fine. &lt;br&gt;
&lt;br&gt;
To make this clearer without going through my sample code here comes a
(short) execution flow:&lt;br&gt;
&lt;br&gt;
&quot;-&quot; are&amp;nbsp; steps in a class, &lt;br&gt;
&quot;-&amp;gt;&quot; or &quot;&amp;lt;-&quot; indicates a switch into another class or a switch
back to the caller&lt;br&gt;
&quot;[...]&quot; marks an explanation&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - create a runner&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; start the continuable object via the runner&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;- the continuable object pause and execution resumes in the
TestCase&amp;nbsp; [pause works here]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - create a NON-continuable object (POJO)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - get the continuable object through the ContinuationContext with
the provided continuation-ID&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; - call a setter method on the continuable object and set the
NON-continuable in the continuable&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; resume the continuation via the runner&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; - the continuable object checks if the NON-continuable isn't null&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; - the continuable object calls a method on the NON-continuable
[parameter &quot;this&quot; or empty]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; - the NON-continuable object test the parameter&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; [when &quot;this&quot; was provided by the continuable object &quot;this&quot;
is used, &lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else the continuable is accessed through the
ContinuationContext ]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; [CYCLE / LOOP-BACK]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; -&amp;gt; the NON-continuable object calls a method on the
continuable object&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; [different from execute, say test() for now]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; - continuable objects test() method try to pause()&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
The last pause() call throws the UnsupportedOperationException, prior
the cycle/loopback the pause() call works.&lt;br&gt;
I tested this for a long time and I found no way to get this
cycle/loopback works at all. &lt;br&gt;
&lt;br&gt;
So my essential question is: &lt;br&gt;
Is it possible to implement such a callback / loopback / cycle with
Rife-Continuations or is this a use case that isn't supported/desired
(yet)?&lt;br&gt;
&lt;br&gt;
Hopeful,&lt;br&gt;
&lt;br&gt;
Claas&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Geert Bevin wrote:
&lt;blockquote cite=&quot;mid:32DD8611-1F46-440E-9253-589822F29E81@uwyn.com&quot; type=&quot;cite&quot;&gt;
  &lt;pre wrap=&quot;&quot;&gt;Hi Claas,

I haven't tried out your sample code yet, but it seems to me that the  
bytecode manipulation isn't happening for that pause() method, thus  
causing the UnsupportedOperationException to be thrown. This is most  
probably due to the ContinuableObject class not being loaded by the  
custom classloader. You'll have to verify that.

If at all possible for you, it might be easier to drop the custom  
classloader entirely and to use the Java 1.5 instrumentation agent.  
More information about this here: &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://rifers.org/docs/api/com/uwyn/rife/continuations/instrument/ContinuationsAgent.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/docs/api/com/uwyn/rife/continuations/instrument/ContinuationsAgent.html&lt;/a&gt;

Hope this helps,

Geert


On 08 Jul 2008, at 11:49, Claas Altschaffel wrote:

  &lt;/pre&gt;
  &lt;blockquote type=&quot;cite&quot;&gt;
    &lt;pre wrap=&quot;&quot;&gt;Hello!
I have a problem with the Rife-Continuations in combination with
non-continuable objects.

I try to use the continuations to replace thread pools in an open  
source
multi agent system called Jadex. Continuations works so far, until i  
try to
make a loopback call from a non-continuable object to a continuable  
object
and then pause the continuation.

This is the (slightly modified) callstack:
TestClass.someMethod()    [e.g.  something like a executor or a test  
case]
 --&amp;gt; ContinuableRunner.start(ContinuableObject)
    --&amp;gt; ContinuableObject.execute()
            [pause continuation, set non-continuable object and resume
continuation]
       --&amp;gt; NonContinuableObject.someMethod()
          --&amp;gt; TestClass.loopbackTest()
             --&amp;gt;ContinuableObject.pauseContinuationMethod()
                --&amp;gt; pause() [called in the pauseContinuation]

After the loopback-method, the pause() call in the ContinuableObject  
throws
an UnsupportedOperationException.

Also a simplified callstack doesn't work:
 TestClass.someMethod()
    --&amp;gt; ContinuableRunner.start(ContinuableObject)
       --&amp;gt; ContinuableObject.execute()
            [pause continuation, set non-continuable object and resume
continuation]
           --&amp;gt; NonContinuableObject.someMethod()
              --&amp;gt; ContinuableObject.loopbackTest()
                --&amp;gt; pause() [called in the loopbackTest() method]

The second example only loops from the continuable object to the
non-continuable object,but the pause method throws the same exception.

In the attachement are two testcases and the needed classes. Hope  
this makes
my problem a little bit clearer. The testcases should work with the  
rife svn
tree.

Is it possible to implement such callstack with Rife-Continuations?  
And if
yes, can anybody tell me what i make wrong?

Testcases:
&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://www.nabble.com/file/p18335150/testcases.tar.gz&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/file/p18335150/testcases.tar.gz&lt;/a&gt; testcases.tar.gz
-- View this message in context: 
&lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://www.nabble.com/Continuable-callstack-outside-a-ContinuableObject--tp18335150s9330p18335150.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Continuable-callstack-outside-a-ContinuableObject--tp18335150s9330p18335150.html&lt;/a&gt;
Sent from the RIFE - users mailing list archive at Nabble.com.


    &lt;/pre&gt;
  &lt;/blockquote&gt;
  &lt;pre wrap=&quot;&quot;&gt;&lt;!----&gt;
--
Geert Bevin
Terracotta - &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://www.terracotta.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.terracotta.org&lt;/a&gt;
Uwyn &quot;Use what you need&quot; - &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://uwyn.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://uwyn.com&lt;/a&gt;
RIFE Java application framework - &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://rifers.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org&lt;/a&gt;
Music and words - &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://gbevin.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gbevin.com&lt;/a&gt;



  &lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br&gt;
--~--~---------~--~----~------------~-------~--~----~&lt;br&gt;
You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group. &lt;br&gt; To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18337000&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt; &lt;br&gt; To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18337000&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt; &lt;br&gt; For more options, visit this group at http://groups.google.com/group/rife-users?hl=en &lt;br&gt; -~----------~----~----~----~------~----~------~--~---&lt;br&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;br&gt;
</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Continuable-callstack-outside-a-ContinuableObject--tp18335556s9330p18337000.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18335839</id>
	<title>Re: Continuable callstack outside a ContinuableObject?</title>
	<published>2008-07-08T03:05:14Z</published>
	<updated>2008-07-08T03:05:14Z</updated>
	<author>
		<name>Geert Bevin</name>
	</author>
	<content type="html">&lt;br&gt;Hi Claas,
&lt;br&gt;&lt;br&gt;I haven't tried out your sample code yet, but it seems to me that the &amp;nbsp;
&lt;br&gt;bytecode manipulation isn't happening for that pause() method, thus &amp;nbsp;
&lt;br&gt;causing the UnsupportedOperationException to be thrown. This is most &amp;nbsp;
&lt;br&gt;probably due to the ContinuableObject class not being loaded by the &amp;nbsp;
&lt;br&gt;custom classloader. You'll have to verify that.
&lt;br&gt;&lt;br&gt;If at all possible for you, it might be easier to drop the custom &amp;nbsp;
&lt;br&gt;classloader entirely and to use the Java 1.5 instrumentation agent. &amp;nbsp;
&lt;br&gt;More information about this here: &lt;a href=&quot;http://rifers.org/docs/api/com/uwyn/rife/continuations/instrument/ContinuationsAgent.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/docs/api/com/uwyn/rife/continuations/instrument/ContinuationsAgent.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Hope this helps,
&lt;br&gt;&lt;br&gt;Geert
&lt;br&gt;&lt;br&gt;&lt;br&gt;On 08 Jul 2008, at 11:49, Claas Altschaffel wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hello!
&lt;br&gt;&amp;gt; I have a problem with the Rife-Continuations in combination with
&lt;br&gt;&amp;gt; non-continuable objects.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I try to use the continuations to replace thread pools in an open &amp;nbsp;
&lt;br&gt;&amp;gt; source
&lt;br&gt;&amp;gt; multi agent system called Jadex. Continuations works so far, until i &amp;nbsp;
&lt;br&gt;&amp;gt; try to
&lt;br&gt;&amp;gt; make a loopback call from a non-continuable object to a continuable &amp;nbsp;
&lt;br&gt;&amp;gt; object
&lt;br&gt;&amp;gt; and then pause the continuation.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This is the (slightly modified) callstack:
&lt;br&gt;&amp;gt; TestClass.someMethod() &amp;nbsp; &amp;nbsp;[e.g. &amp;nbsp;something like a executor or a test &amp;nbsp;
&lt;br&gt;&amp;gt; case]
&lt;br&gt;&amp;gt; &amp;nbsp;--&amp;gt; ContinuableRunner.start(ContinuableObject)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; --&amp;gt; ContinuableObject.execute()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [pause continuation, set non-continuable object and resume
&lt;br&gt;&amp;gt; continuation]
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt; NonContinuableObject.someMethod()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --&amp;gt; TestClass.loopbackTest()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt;ContinuableObject.pauseContinuationMethod()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --&amp;gt; pause() [called in the pauseContinuation]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; After the loopback-method, the pause() call in the ContinuableObject &amp;nbsp;
&lt;br&gt;&amp;gt; throws
&lt;br&gt;&amp;gt; an UnsupportedOperationException.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Also a simplified callstack doesn't work:
&lt;br&gt;&amp;gt; &amp;nbsp;TestClass.someMethod()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; --&amp;gt; ContinuableRunner.start(ContinuableObject)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt; ContinuableObject.execute()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [pause continuation, set non-continuable object and resume
&lt;br&gt;&amp;gt; continuation]
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt; NonContinuableObject.someMethod()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --&amp;gt; ContinuableObject.loopbackTest()
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --&amp;gt; pause() [called in the loopbackTest() method]
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The second example only loops from the continuable object to the
&lt;br&gt;&amp;gt; non-continuable object,but the pause method throws the same exception.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In the attachement are two testcases and the needed classes. Hope &amp;nbsp;
&lt;br&gt;&amp;gt; this makes
&lt;br&gt;&amp;gt; my problem a little bit clearer. The testcases should work with the &amp;nbsp;
&lt;br&gt;&amp;gt; rife svn
&lt;br&gt;&amp;gt; tree.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Is it possible to implement such callstack with Rife-Continuations? &amp;nbsp;
&lt;br&gt;&amp;gt; And if
&lt;br&gt;&amp;gt; yes, can anybody tell me what i make wrong?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Testcases:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/file/p18335150/testcases.tar.gz&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/file/p18335150/testcases.tar.gz&lt;/a&gt;&amp;nbsp;testcases.tar.gz
&lt;br&gt;&amp;gt; -- View this message in context: 
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://www.nabble.com/Continuable-callstack-outside-a-ContinuableObject--tp18335150s9330p18335150.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Continuable-callstack-outside-a-ContinuableObject--tp18335150s9330p18335150.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the RIFE - users mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;/div&gt;&lt;br&gt;--
&lt;br&gt;Geert Bevin
&lt;br&gt;Terracotta - &lt;a href=&quot;http://www.terracotta.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.terracotta.org&lt;/a&gt;&lt;br&gt;Uwyn &amp;quot;Use what you need&amp;quot; - &lt;a href=&quot;http://uwyn.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://uwyn.com&lt;/a&gt;&lt;br&gt;RIFE Java application framework - &lt;a href=&quot;http://rifers.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org&lt;/a&gt;&lt;br&gt;Music and words - &lt;a href=&quot;http://gbevin.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gbevin.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18335839&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18335839&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Continuable-callstack-outside-a-ContinuableObject--tp18335556s9330p18335839.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18335556</id>
	<title>Continuable callstack outside a ContinuableObject?</title>
	<published>2008-07-08T02:49:16Z</published>
	<updated>2008-07-08T02:49:16Z</updated>
	<author>
		<name>claas</name>
	</author>
	<content type="html">&lt;br&gt;Hello!
&lt;br&gt;I have a problem with the Rife-Continuations in combination with
&lt;br&gt;non-continuable objects.
&lt;br&gt;&lt;br&gt;I try to use the continuations to replace thread pools in an open source
&lt;br&gt;multi agent system called Jadex. Continuations works so far, until i try to
&lt;br&gt;make a loopback call from a non-continuable object to a continuable object
&lt;br&gt;and then pause the continuation.
&lt;br&gt;&lt;br&gt;This is the (slightly modified) callstack:
&lt;br&gt;TestClass.someMethod() &amp;nbsp; &amp;nbsp;[e.g. &amp;nbsp;something like a executor or a test case]
&lt;br&gt;&amp;nbsp; --&amp;gt; ContinuableRunner.start(ContinuableObject) 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt; ContinuableObject.execute() 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[pause continuation, set non-continuable object and resume
&lt;br&gt;continuation]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --&amp;gt; NonContinuableObject.someMethod()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt; TestClass.loopbackTest()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --&amp;gt;ContinuableObject.pauseContinuationMethod()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt; pause() [called in the pauseContinuation]
&lt;br&gt;&lt;br&gt;After the loopback-method, the pause() call in the ContinuableObject throws
&lt;br&gt;an UnsupportedOperationException.
&lt;br&gt;&lt;br&gt;Also a simplified callstack doesn't work:
&lt;br&gt;&amp;nbsp; TestClass.someMethod()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt; ContinuableRunner.start(ContinuableObject) 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --&amp;gt; ContinuableObject.execute() 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[pause continuation, set non-continuable object and resume
&lt;br&gt;continuation]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; --&amp;gt; NonContinuableObject.someMethod()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt; ContinuableObject.loopbackTest()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--&amp;gt; pause() [called in the loopbackTest() method]
&lt;br&gt;&lt;br&gt;The second example only loops from the continuable object to the
&lt;br&gt;non-continuable object,but the pause method throws the same exception.
&lt;br&gt;&lt;br&gt;In the attachement are two testcases and the needed classes. Hope this makes
&lt;br&gt;my problem a little bit clearer. The testcases should work with the rife svn
&lt;br&gt;tree.
&lt;br&gt;&lt;br&gt;Is it possible to implement such callstack with Rife-Continuations? And if
&lt;br&gt;yes, can anybody tell me what i make wrong?
&lt;br&gt;&lt;br&gt;Testcases:
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/file/p18335150/testcases.tar.gz&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/file/p18335150/testcases.tar.gz&lt;/a&gt;&amp;nbsp;testcases.tar.gz 
&lt;br&gt;-- View this message in context: 
&lt;br&gt;&lt;a href=&quot;http://www.nabble.com/Continuable-callstack-outside-a-ContinuableObject--tp18335150s9330p18335150.html&quot; target=&quot;_top&quot;&gt;http://www.nabble.com/Continuable-callstack-outside-a-ContinuableObject--tp18335150s9330p18335150.html&lt;/a&gt;&amp;nbsp;
&lt;br&gt;Sent from the RIFE - users mailing list archive at Nabble.com.
&lt;br&gt;&lt;br&gt;&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18335556&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18335556&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Continuable-callstack-outside-a-ContinuableObject--tp18335556s9330p18335556.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18311627</id>
	<title>Re: Rife/Continuations execute with parameters</title>
	<published>2008-07-07T00:47:17Z</published>
	<updated>2008-07-07T00:47:17Z</updated>
	<author>
		<name>Geert Bevin</name>
	</author>
	<content type="html">&lt;br&gt;Hi Lionel,
&lt;br&gt;&lt;br&gt;&lt;br&gt;On 07 Jul 2008, at 09:25, Lionel Touati wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; Hi Geert,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks for the pointers. I'll do that. What I've found out is that &amp;nbsp;
&lt;br&gt;&amp;gt; parent / child continuation support does not seem to work. I've got &amp;nbsp;
&lt;br&gt;&amp;gt; an issue as the parent continuation id is never set in the child &amp;nbsp;
&lt;br&gt;&amp;gt; one. Do you think it'll be solved in the snapshot ( I want to use it &amp;nbsp;
&lt;br&gt;&amp;gt; to support back links).
&lt;br&gt;&lt;br&gt;that's strange, I just went through some unit tests and the parent &amp;nbsp;
&lt;br&gt;child continuation IDs are set correctly. Would you be able to isolate &amp;nbsp;
&lt;br&gt;a test case with what you're seeing so that I can check what's going &amp;nbsp;
&lt;br&gt;on for you. Best verify with the latest snapshot though, I can't &amp;nbsp;
&lt;br&gt;remember all the fixes that went in over the last year ;-)
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Regarding continuation parameter, I couldn't find anything that &amp;nbsp;
&lt;br&gt;&amp;gt; relates to my problem, probably because I'l lacking on how the &amp;nbsp;
&lt;br&gt;&amp;gt; internal of continuations work. What I've done to support it is the &amp;nbsp;
&lt;br&gt;&amp;gt; following:
&lt;br&gt;&amp;gt; use &amp;nbsp;
&lt;br&gt;&amp;gt; com 
&lt;br&gt;&amp;gt; .uwyn 
&lt;br&gt;&amp;gt; .rife 
&lt;br&gt;&amp;gt; .continuations 
&lt;br&gt;&amp;gt; .ContinuationContext.getActiveContext().setCallAnswer(parameter) to &amp;nbsp;
&lt;br&gt;&amp;gt; set a parameter, and using the callanswer to to create the state &amp;nbsp;
&lt;br&gt;&amp;gt; object in the call state, and then modifying the callTargetRetriever &amp;nbsp;
&lt;br&gt;&amp;gt; to pass it as a parameter of the constructor for my child &amp;nbsp;
&lt;br&gt;&amp;gt; continuation class. It's a bit tedious but it works.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Do you think it'd be possible to add a ... parameter to the call &amp;nbsp;
&lt;br&gt;&amp;gt; method that will be able to pass the parameters ? It'd make my life &amp;nbsp;
&lt;br&gt;&amp;gt; much easyer.
&lt;/div&gt;&lt;br&gt;I can look into adding this, please file an issue in RIFE's jira, I'll &amp;nbsp;
&lt;br&gt;try to make some time to look into it soon.
&lt;br&gt;&lt;br&gt;&amp;gt; Otherwise, it was really simple to hook Tapestry &amp; Rife together, &amp;nbsp;
&lt;br&gt;&amp;gt; just a mater of creating several classes, and a tapestry service to &amp;nbsp;
&lt;br&gt;&amp;gt; make the thing work
&lt;br&gt;&lt;br&gt;Cool, I like this kind of stuff :-)
&lt;br&gt;&lt;br&gt;Take care,
&lt;br&gt;&lt;br&gt;Geert
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;Geert Bevin
&lt;br&gt;Terracotta - &lt;a href=&quot;http://www.terracotta.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.terracotta.org&lt;/a&gt;&lt;br&gt;Uwyn &amp;quot;Use what you need&amp;quot; - &lt;a href=&quot;http://uwyn.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://uwyn.com&lt;/a&gt;&lt;br&gt;RIFE Java application framework - &lt;a href=&quot;http://rifers.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org&lt;/a&gt;&lt;br&gt;Music and words - &lt;a href=&quot;http://gbevin.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gbevin.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18311627&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18311627&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Rife-Continuations-execute-with-parameters-tp18289703s9330p18311627.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18311370</id>
	<title>Re: Rife/Continuations execute with parameters</title>
	<published>2008-07-07T00:25:51Z</published>
	<updated>2008-07-07T00:25:51Z</updated>
	<author>
		<name>Lionel Touati-2</name>
	</author>
	<content type="html">&lt;html&gt;&lt;body style=&quot;word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; &quot;&gt;Hi Geert,&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Thanks for the pointers. I'll do that. What I've found out is that parent / child continuation support does not seem to work. I've got an issue as the parent continuation id is never set in the child one. Do you think it'll be solved in the snapshot ( I want to use it to support back links).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Regarding continuation parameter, I couldn't find anything that relates to my problem, probably because I'l lacking on how the internal of continuations work. What I've done to support it is the following:&lt;/div&gt;&lt;div&gt;use&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Monaco; font-size: 11px; &quot;&gt;com.uwyn.rife.continuations.ContinuationContext.getActiveContext().setCallAnswer(parameter) to set a parameter, and using the callanswer to to create the state object in the call state, and then modifying the callTargetRetriever to pass it as a parameter of the constructor for my child continuation class. It's a bit tedious but it works.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Monaco&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Monaco&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;Do you think it'd be possible to add a ... parameter to the call method that will be able to pass the parameters ? It'd make my life much easyer.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Monaco&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Monaco&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;Otherwise, it was really simple to hook Tapestry &amp;amp; Rife together, just a mater of creating several classes, and a tapestry service to make the thing work&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Monaco&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Monaco&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;L.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Monaco&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Monaco&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; face=&quot;Monaco&quot; size=&quot;3&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 11px;&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;
--~--~---------~--~----~------------~-------~--~----~&lt;br&gt;
You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group. &lt;br&gt; To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18311370&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt; &lt;br&gt; To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18311370&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt; &lt;br&gt; For more options, visit this group at http://groups.google.com/group/rife-users?hl=en &lt;br&gt; -~----------~----~----~----~------~----~------~--~---&lt;br&gt;
&lt;/body&gt;&lt;/html&gt;&lt;br&gt;
</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Rife-Continuations-execute-with-parameters-tp18289703s9330p18311370.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18311238</id>
	<title>Re: Rife/Continuations execute with parameters</title>
	<published>2008-07-07T00:14:00Z</published>
	<updated>2008-07-07T00:14:00Z</updated>
	<author>
		<name>Geert Bevin</name>
	</author>
	<content type="html">&lt;br&gt;Hi Lionel,
&lt;br&gt;&lt;br&gt;sounds like you're doing cool stuff, please keep us posted!
&lt;br&gt;&lt;br&gt;First, I really should release a new version of RIFE but never seem to &amp;nbsp;
&lt;br&gt;be able to find the time. I strongly suggest that you download one of &amp;nbsp;
&lt;br&gt;the nightly napshots and use the RIFE/Continuations jar that's in &amp;nbsp;
&lt;br&gt;there. There have been some bug fixes for the standalone continuations &amp;nbsp;
&lt;br&gt;support in there.
&lt;br&gt;&lt;br&gt;For your question, you can use 'call-answer' continuations for what &amp;nbsp;
&lt;br&gt;you describe. You can find examples in the tests here: &lt;a href=&quot;http://svn.rifers.org/rife/trunk/src/unittests/com/uwyn/rife/continuations/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.rifers.org/rife/trunk/src/unittests/com/uwyn/rife/continuations/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Hope this helps,
&lt;br&gt;&lt;br&gt;Geert
&lt;br&gt;&lt;br&gt;On 05 Jul 2008, at 09:23, Lionel Touati wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi ,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; We're in the process of plugin Rife/Continuations to our existing
&lt;br&gt;&amp;gt; Tapestry frontend. It works great but I'm having a small issue. I'd
&lt;br&gt;&amp;gt; like to be able to call subcontinuations with parameters. For example
&lt;br&gt;&amp;gt; I'm doing a search in Flow 1, and I'd like to start Flow2 with the
&lt;br&gt;&amp;gt; result of this search.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I could not find anything to do it, so my question is, is it
&lt;br&gt;&amp;gt; possible ? (I'm using the BasicContinuableRunner)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks for any thought / pointers
&lt;/div&gt;&lt;br&gt;--
&lt;br&gt;Geert Bevin
&lt;br&gt;Terracotta - &lt;a href=&quot;http://www.terracotta.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.terracotta.org&lt;/a&gt;&lt;br&gt;Uwyn &amp;quot;Use what you need&amp;quot; - &lt;a href=&quot;http://uwyn.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://uwyn.com&lt;/a&gt;&lt;br&gt;RIFE Java application framework - &lt;a href=&quot;http://rifers.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org&lt;/a&gt;&lt;br&gt;Music and words - &lt;a href=&quot;http://gbevin.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gbevin.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18311238&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18311238&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Rife-Continuations-execute-with-parameters-tp18289703s9330p18311238.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18311195</id>
	<title>Re: How to initialize a self-instantiated Element, so that  processTemplate can be called?</title>
	<published>2008-07-07T00:08:56Z</published>
	<updated>2008-07-07T00:08:56Z</updated>
	<author>
		<name>Geert Bevin</name>
	</author>
	<content type="html">&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;what happens is indeed that RIFE can only generate exit values when &amp;nbsp;
&lt;br&gt;the web application is actually being used. There's some requite data &amp;nbsp;
&lt;br&gt;which is only available when a request object is available. So, you &amp;nbsp;
&lt;br&gt;need to make that request somehow. I think that for this, RIFE's out- 
&lt;br&gt;of-container testing could allow you to do what you want: &lt;a href=&quot;http://rifers.org/wiki/display/RIFE/Out+of+container+testing&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/Out+of+container+testing&lt;/a&gt;&lt;br&gt;&lt;br&gt;Retrieve your existing site instance and perform a request on the &amp;nbsp;
&lt;br&gt;element that would normally print out that template. Then you have &amp;nbsp;
&lt;br&gt;several options, either the output is exactly what you want, and you &amp;nbsp;
&lt;br&gt;can use response.getText(). Another option is to use &amp;nbsp;
&lt;br&gt;response.getTemplate(), and only use parts of your template structure.
&lt;br&gt;&lt;br&gt;Hope this helps,
&lt;br&gt;&lt;br&gt;Geert
&lt;br&gt;&lt;br&gt;On 04 Jul 2008, at 17:53, kodde wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi folks,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I really enjoy using RIFE for my small project here, but currently I
&lt;br&gt;&amp;gt; am stuck at a problem with Element objects and their not yet
&lt;br&gt;&amp;gt; initialized contexts. I will try to explain my problem in detail:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have written an Executor class called &amp;quot;RequestUpdater&amp;quot; which gets
&lt;br&gt;&amp;gt; executed every minute. I want this RequestUpdate to send an email on
&lt;br&gt;&amp;gt; each execution, which basically works fine by now.
&lt;br&gt;&amp;gt; Because I really like the templating system provided by Rife, I wanted
&lt;br&gt;&amp;gt; to create the mail body via templates. Usually this would be no
&lt;br&gt;&amp;gt; problem, because I could simply extend the Element class, select a
&lt;br&gt;&amp;gt; template and call the &amp;quot;processTemplate&amp;quot; method. Now here comes the
&lt;br&gt;&amp;gt; problem:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Within my RequestUpdater (extending Executor) there is no
&lt;br&gt;&amp;gt; processTemplate or anything approrpiate (of course not). So I tried to
&lt;br&gt;&amp;gt; instantiate an existing class extending the Element class and called
&lt;br&gt;&amp;gt; the processTemplate from there. Unfortunately I only get the
&lt;br&gt;&amp;gt; Exception:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;quot;This element executed a method that requires a fully initialized
&lt;br&gt;&amp;gt; element context&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; which I basically understand, but I don't know how to initialize the
&lt;br&gt;&amp;gt; context of the element on my own. I tried something like
&lt;br&gt;&amp;gt; Site.getRepInstance().resolveId(&amp;quot;myId&amp;quot;).getImplementationBlueprint but
&lt;br&gt;&amp;gt; this doesn't work either (it's always null).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So is there any possibility to use the template mechanism from within
&lt;br&gt;&amp;gt; an Executor or do I have to hard code the output instead of using
&lt;br&gt;&amp;gt; setOutput and EXIT:QUERY methods??
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks in advance for your suggestions, and please excuse my bad
&lt;br&gt;&amp;gt; English, it's not my mother tongue ;)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;/div&gt;&lt;br&gt;--
&lt;br&gt;Geert Bevin
&lt;br&gt;Terracotta - &lt;a href=&quot;http://www.terracotta.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.terracotta.org&lt;/a&gt;&lt;br&gt;Uwyn &amp;quot;Use what you need&amp;quot; - &lt;a href=&quot;http://uwyn.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://uwyn.com&lt;/a&gt;&lt;br&gt;RIFE Java application framework - &lt;a href=&quot;http://rifers.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org&lt;/a&gt;&lt;br&gt;Music and words - &lt;a href=&quot;http://gbevin.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gbevin.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18311195&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18311195&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-to-initialize-a-self-instantiated-Element%2C-so-that--processTemplate-can-be-called--tp18282035s9330p18311195.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18289703</id>
	<title>Rife/Continuations execute with parameters</title>
	<published>2008-07-05T00:23:22Z</published>
	<updated>2008-07-05T00:23:22Z</updated>
	<author>
		<name>Lionel  Touati</name>
	</author>
	<content type="html">&lt;br&gt;Hi ,
&lt;br&gt;&lt;br&gt;We're in the process of plugin Rife/Continuations to our existing
&lt;br&gt;Tapestry frontend. It works great but I'm having a small issue. I'd
&lt;br&gt;like to be able to call subcontinuations with parameters. For example
&lt;br&gt;I'm doing a search in Flow 1, and I'd like to start Flow2 with the
&lt;br&gt;result of this search.
&lt;br&gt;&lt;br&gt;I could not find anything to do it, so my question is, is it
&lt;br&gt;possible ? (I'm using the BasicContinuableRunner)
&lt;br&gt;&lt;br&gt;Thanks for any thought / pointers
&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18289703&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18289703&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Rife-Continuations-execute-with-parameters-tp18289703s9330p18289703.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18282035</id>
	<title>How to initialize a self-instantiated Element, so that  processTemplate can be called?</title>
	<published>2008-07-04T08:53:35Z</published>
	<updated>2008-07-04T08:53:35Z</updated>
	<author>
		<name>kodde</name>
	</author>
	<content type="html">&lt;br&gt;Hi folks,
&lt;br&gt;&lt;br&gt;I really enjoy using RIFE for my small project here, but currently I
&lt;br&gt;am stuck at a problem with Element objects and their not yet
&lt;br&gt;initialized contexts. I will try to explain my problem in detail:
&lt;br&gt;&lt;br&gt;I have written an Executor class called &amp;quot;RequestUpdater&amp;quot; which gets
&lt;br&gt;executed every minute. I want this RequestUpdate to send an email on
&lt;br&gt;each execution, which basically works fine by now.
&lt;br&gt;Because I really like the templating system provided by Rife, I wanted
&lt;br&gt;to create the mail body via templates. Usually this would be no
&lt;br&gt;problem, because I could simply extend the Element class, select a
&lt;br&gt;template and call the &amp;quot;processTemplate&amp;quot; method. Now here comes the
&lt;br&gt;problem:
&lt;br&gt;&lt;br&gt;Within my RequestUpdater (extending Executor) there is no
&lt;br&gt;processTemplate or anything approrpiate (of course not). So I tried to
&lt;br&gt;instantiate an existing class extending the Element class and called
&lt;br&gt;the processTemplate from there. Unfortunately I only get the
&lt;br&gt;Exception:
&lt;br&gt;&lt;br&gt;&amp;quot;This element executed a method that requires a fully initialized
&lt;br&gt;element context&amp;quot;
&lt;br&gt;&lt;br&gt;which I basically understand, but I don't know how to initialize the
&lt;br&gt;context of the element on my own. I tried something like
&lt;br&gt;Site.getRepInstance().resolveId(&amp;quot;myId&amp;quot;).getImplementationBlueprint but
&lt;br&gt;this doesn't work either (it's always null).
&lt;br&gt;&lt;br&gt;So is there any possibility to use the template mechanism from within
&lt;br&gt;an Executor or do I have to hard code the output instead of using
&lt;br&gt;setOutput and EXIT:QUERY methods??
&lt;br&gt;&lt;br&gt;Thanks in advance for your suggestions, and please excuse my bad
&lt;br&gt;English, it's not my mother tongue ;)
&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18282035&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18282035&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/How-to-initialize-a-self-instantiated-Element%2C-so-that--processTemplate-can-be-called--tp18282035s9330p18282035.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18190632</id>
	<title>Re: mapping a bean instance to template</title>
	<published>2008-06-30T01:08:55Z</published>
	<updated>2008-06-30T01:08:55Z</updated>
	<author>
		<name>Geert Bevin</name>
	</author>
	<content type="html">&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;this is not possible. Some basic questions arise here though, how do &amp;nbsp;
&lt;br&gt;you format each bean property?
&lt;br&gt;&lt;br&gt;One way this is handled, is through RIFE/Crud, which has an API that &amp;nbsp;
&lt;br&gt;let's you do things like this. RIFE/Crud is being folded into RIFE &amp;nbsp;
&lt;br&gt;itself for the next release, so this will be even easier. You can &amp;nbsp;
&lt;br&gt;experiment with it and the samples (&lt;a href=&quot;http://svn.rifers.org/rife/trunk/src/examples/tutorial/11_crud/src/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.rifers.org/rife/trunk/src/examples/tutorial/11_crud/src/&lt;/a&gt;&amp;nbsp;
&lt;br&gt;) if you download the latest snapshot.
&lt;br&gt;&lt;br&gt;Hope this helps,
&lt;br&gt;&lt;br&gt;Geert
&lt;br&gt;&lt;br&gt;On 30 Jun 2008, at 00:11, dk wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I want to use setBean() method to send all the fields in a bean but I
&lt;br&gt;&amp;gt; don't want to write the template with all these lines. Instead, is
&lt;br&gt;&amp;gt; there a mechanism to write the template like
&lt;br&gt;&amp;gt; &amp;lt;bean:packacename.SomeClass/&amp;gt; .
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;Geert Bevin
&lt;br&gt;Terracotta - &lt;a href=&quot;http://www.terracotta.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.terracotta.org&lt;/a&gt;&lt;br&gt;Uwyn &amp;quot;Use what you need&amp;quot; - &lt;a href=&quot;http://uwyn.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://uwyn.com&lt;/a&gt;&lt;br&gt;RIFE Java application framework - &lt;a href=&quot;http://rifers.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org&lt;/a&gt;&lt;br&gt;Music and words - &lt;a href=&quot;http://gbevin.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gbevin.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18190632&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18190632&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/mapping-a-bean-instance-to-template-tp18185968s9330p18190632.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18185968</id>
	<title>mapping a bean instance to template</title>
	<published>2008-06-29T15:11:31Z</published>
	<updated>2008-06-29T15:11:31Z</updated>
	<author>
		<name>dk-17</name>
	</author>
	<content type="html">&lt;br&gt;I want to use setBean() method to send all the fields in a bean but I
&lt;br&gt;don't want to write the template with all these lines. Instead, is
&lt;br&gt;there a mechanism to write the template like
&lt;br&gt;&amp;lt;bean:packacename.SomeClass/&amp;gt; .
&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18185968&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18185968&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/mapping-a-bean-instance-to-template-tp18185968s9330p18185968.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18127468</id>
	<title>Re: question about Crud and Vector or List combination</title>
	<published>2008-06-25T23:41:33Z</published>
	<updated>2008-06-25T23:41:33Z</updated>
	<author>
		<name>Geert Bevin</name>
	</author>
	<content type="html">&lt;br&gt;Nope, sorry, that isn't supported.
&lt;br&gt;&lt;br&gt;&lt;br&gt;On 25 Jun 2008, at 22:06, dk wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; A have a brief question,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Is it possible to use Vector of ArrayList in a Crud Bean.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thanks
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;Geert Bevin
&lt;br&gt;Terracotta - &lt;a href=&quot;http://www.terracotta.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.terracotta.org&lt;/a&gt;&lt;br&gt;Uwyn &amp;quot;Use what you need&amp;quot; - &lt;a href=&quot;http://uwyn.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://uwyn.com&lt;/a&gt;&lt;br&gt;RIFE Java application framework - &lt;a href=&quot;http://rifers.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org&lt;/a&gt;&lt;br&gt;Music and words - &lt;a href=&quot;http://gbevin.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gbevin.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18127468&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18127468&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/question-about-Crud-and-Vector-or-List-combination-tp18120742s9330p18127468.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18120742</id>
	<title>question about Crud and Vector or List combination</title>
	<published>2008-06-25T13:06:35Z</published>
	<updated>2008-06-25T13:06:35Z</updated>
	<author>
		<name>dk-17</name>
	</author>
	<content type="html">&lt;br&gt;A have a brief question,
&lt;br&gt;&lt;br&gt;Is it possible to use Vector of ArrayList in a Crud Bean.
&lt;br&gt;&lt;br&gt;Thanks
&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18120742&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18120742&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/question-about-Crud-and-Vector-or-List-combination-tp18120742s9330p18120742.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18034811</id>
	<title>Re: custom authentication and participant</title>
	<published>2008-06-20T11:10:59Z</published>
	<updated>2008-06-20T11:10:59Z</updated>
	<author>
		<name>Geert Bevin</name>
	</author>
	<content type="html">&lt;br&gt;Hi Rodrigue,
&lt;br&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As I said, I am now using a custom version of the identified
&lt;br&gt;&amp;gt; mechanism. However I am getting confused once again. When you say
&lt;br&gt;&amp;gt; &amp;quot;for that to work, you have to make sure that your authentication
&lt;br&gt;&amp;gt; element executes before the rest&amp;quot;
&lt;br&gt;&amp;gt; it seems to me that because all my elements inherit from the
&lt;br&gt;&amp;gt; authentication element, the authentication always executes before the
&lt;br&gt;&amp;gt; rest, does it not...?
&lt;br&gt;&lt;br&gt;You're correct. The last applications I developed with RIFE did not &amp;nbsp;
&lt;br&gt;use inheritance for authentication, but rather an embedded element as &amp;nbsp;
&lt;br&gt;a login box which then stored the credentials in the request as &amp;nbsp;
&lt;br&gt;attributes, leaving the site accessible but to guests and authorized &amp;nbsp;
&lt;br&gt;people.
&lt;br&gt;&lt;br&gt;&amp;gt; By inheriting from Auth, am I not insured that
&lt;br&gt;&amp;gt; getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME) will return a
&lt;br&gt;&amp;gt; non-null value?
&lt;br&gt;&lt;br&gt;Yes, you are.
&lt;br&gt;&lt;br&gt;&amp;gt; Also, the existing documentation is already quite substantial, so
&lt;br&gt;&amp;gt; thanks to the work you and others have done. I'd be happy to try to
&lt;br&gt;&amp;gt; extend it as soon as I have time, which means once my project in which
&lt;br&gt;&amp;gt; I use rife is finished.
&lt;br&gt;&lt;br&gt;Cool, every bit of help is much appreciated.
&lt;br&gt;&lt;br&gt;Take care,
&lt;br&gt;&lt;br&gt;geert
&lt;br&gt;&lt;br&gt;--
&lt;br&gt;Geert Bevin
&lt;br&gt;Terracotta - &lt;a href=&quot;http://www.terracotta.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.terracotta.org&lt;/a&gt;&lt;br&gt;Uwyn &amp;quot;Use what you need&amp;quot; - &lt;a href=&quot;http://uwyn.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://uwyn.com&lt;/a&gt;&lt;br&gt;RIFE Java application framework - &lt;a href=&quot;http://rifers.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org&lt;/a&gt;&lt;br&gt;Music and words - &lt;a href=&quot;http://gbevin.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gbevin.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18034811&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18034811&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/custom-authentication-and-participant-tp17869010s9330p18034811.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18032780</id>
	<title>Re: custom authentication and participant</title>
	<published>2008-06-20T09:04:26Z</published>
	<updated>2008-06-20T09:04:26Z</updated>
	<author>
		<name>Rodrigue-2</name>
	</author>
	<content type="html">&lt;br&gt;Hi Geert,
&lt;br&gt;&lt;br&gt;Thanks for your answer. I did read the authentication system
&lt;br&gt;internals, which was helpful in understanding how it works.
&lt;br&gt;&lt;br&gt;As I said, I am now using a custom version of the identified
&lt;br&gt;mechanism. However I am getting confused once again. When you say
&lt;br&gt;&amp;quot;for that to work, you have to make sure that your authentication
&lt;br&gt;element executes before the rest&amp;quot;
&lt;br&gt;it seems to me that because all my elements inherit from the
&lt;br&gt;authentication element, the authentication always executes before the
&lt;br&gt;rest, does it not...?
&lt;br&gt;By inheriting from Auth, am I not insured that
&lt;br&gt;getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME) will return a
&lt;br&gt;non-null value?
&lt;br&gt;&lt;br&gt;Also, the existing documentation is already quite substantial, so
&lt;br&gt;thanks to the work you and others have done. I'd be happy to try to
&lt;br&gt;extend it as soon as I have time, which means once my project in which
&lt;br&gt;I use rife is finished.
&lt;br&gt;&lt;br&gt;Rodrigue
&lt;br&gt;&lt;br&gt;On Jun 20, 4:22 pm, Geert Bevin &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18032780&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;gbe...@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Rodrigue,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; sorry that the documentation is a bit lacking in this regard. Have you
&lt;br&gt;&amp;gt; read through thishttp://rifers.org/wiki/display/RIFE/Authentication+system+internals
&lt;br&gt;&amp;gt; &amp;nbsp; ? I think that you should be able to get a better idea of how the
&lt;br&gt;&amp;gt; authentication internals work. Also make sure to read the Javadoc of
&lt;br&gt;&amp;gt; the relevant interfaces/classes.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As far as storing variables somewhere after the authentication
&lt;br&gt;&amp;gt; proceeds, this can be done in several ways. First, if you only want
&lt;br&gt;&amp;gt; this to be available to all the other elements in the same request,
&lt;br&gt;&amp;gt; it's best to use request attributes for this:&lt;a href=&quot;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#s&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#s&lt;/a&gt;...)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This is what the identified element does. Of course, for that to work,
&lt;br&gt;&amp;gt; you have to make sure that your authentication element executes before
&lt;br&gt;&amp;gt; the rest, either by having it precede the others:&lt;a href=&quot;http://rifers.org/wiki/display/RIFE/Precedence&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/Precedence&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; or by embedding it into your template and give it a high priority:&lt;a href=&quot;http://rifers.org/wiki/display/RIFE/Embedded+element+priorities&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/Embedded+element+priorities&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If you want to store these variables for a longer time, you can still
&lt;br&gt;&amp;gt; access the regular HTTP session within RIFE, you just have to turn on
&lt;br&gt;&amp;gt; raw access:&lt;a href=&quot;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#s&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#s&lt;/a&gt;...)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; After that you can use the unmanaged HTTP request and access the
&lt;br&gt;&amp;gt; session:&lt;a href=&quot;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#g...(&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#g...(&lt;/a&gt;)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Other ways of doing this is by creating stateful components:&lt;a href=&quot;http://rifers.org/wiki/display/RIFE/Stateful+components&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/Stateful+components&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ... and if you don't want to store your RIFE flow state on the client-
&lt;br&gt;&amp;gt; side, you can use other back-end stores, like sessions for instance:&lt;a href=&quot;http://rifers.org/wiki/display/RIFE/Configurable+state+storage&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/Configurable+state+storage&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hope this helps and if you find areas in the documentation that could
&lt;br&gt;&amp;gt; use some improvement, please feel free to contribute.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Take care,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Geert
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On 20 Jun 2008, at 11:10, Rodrigue wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Hi Matthias,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I have finally managed to do what I wanted to do, maybe not in the
&lt;br&gt;&amp;gt; &amp;gt; best way though.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; You didn't have to explicitly worry about the IdentifiableUsersManager
&lt;br&gt;&amp;gt; &amp;gt; interface because your custom manager implements RoleUsersManager,
&lt;br&gt;&amp;gt; &amp;gt; which extends IdentifiableUsersManager. Still, you certainly had to
&lt;br&gt;&amp;gt; &amp;gt; implement getLogin() and getAttributes(). I only implement
&lt;br&gt;&amp;gt; &amp;gt; IdentifiableUsersManager because I don't need the role feature.
&lt;br&gt;&amp;gt; &amp;gt; However, I have written a custom class that extends
&lt;br&gt;&amp;gt; &amp;gt; RoleUsersAttributes so that the getAttributes() method on the
&lt;br&gt;&amp;gt; &amp;gt; RoleUserIdentity returns my custom object in which I can store more
&lt;br&gt;&amp;gt; &amp;gt; information than just login, password, and role.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I read the user's guide section on managing user data (
&lt;br&gt;&amp;gt; &amp;gt;&lt;a href=&quot;http://rifers.org/wiki/display/RIFE/GuideDatabaseUsers#GuideDatabaseU&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/GuideDatabaseUsers#GuideDatabaseU&lt;/a&gt;...
&lt;br&gt;&amp;gt; &amp;gt; ) but wasn't sure how to link that to my custom credentials manager.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Also, about your IDENTIFIED element, I don't think it is used at all
&lt;br&gt;&amp;gt; &amp;gt; unless you have other elements that inherits from it, so I wasn't sure
&lt;br&gt;&amp;gt; &amp;gt; either about how to use it.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Anyway, my application works at the moment so I will keep going even
&lt;br&gt;&amp;gt; &amp;gt; though I doubt I am really managing my user data the best way. Also,
&lt;br&gt;&amp;gt; &amp;gt; some details of rife are still obscure to me. I am not sure how the
&lt;br&gt;&amp;gt; &amp;gt; identity information is saved. I think it is sent to the client and I
&lt;br&gt;&amp;gt; &amp;gt; don't know how to explicitly keep it on the server side (which, in my
&lt;br&gt;&amp;gt; &amp;gt; understanding, would require defining a db table).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; All that is a bit of thinking aloud but maybe it can help somebody
&lt;br&gt;&amp;gt; &amp;gt; who'll read it. In the meantime, I'll keep tinkering with rife until I
&lt;br&gt;&amp;gt; &amp;gt; understand it more. At any rate, thanks for your help.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Rodrigue
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Jun 19, 11:09 am, Matthias Barmeier
&lt;br&gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18032780&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matthias.barme...@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Hi Rodrigue,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; my Factory is really simple:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; package de.sourcepark.ms2.rife;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; import com.uwyn.rife.authentication.CredentialsManager;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; import
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; com
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; .uwyn
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; .rife.authentication.credentialsmanagers.CredentialsManagerFactory;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; import com.uwyn.rife.ioc.HierarchicalProperties;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; import com.uwyn.rife.ioc.exceptions.PropertyValueException;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; No Id on have a Manager that implementes the interface you
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; mentioned my
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; decalaration is:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;public class MS2CredentialsManager implements CredentialsManager,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; RoleUsersManager
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; What I have copied from some examples and not really understand is
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; this
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; main.xml element:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element id=&amp;quot;IDENTIFIED&amp;quot;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; extends=&amp;quot;rife/authenticated/identified.xml&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;authElementId&amp;quot;&amp;gt;AuthClient&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;childtrigger name=&amp;quot;authid&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/element&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; May be this creates the things you need on the fly.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Ciao
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; Matthias
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Rodrigue wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Hi Matthias,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; thank you again for your reply. I still have some trouble though.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; When I call
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; RoleUserIdentity identity =
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (RoleUserIdentity
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; )getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; the identity is null. After looking at the rife source code I found
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; out that this is because my credentials manager does not implement
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; IdentifiableUsersManager. So I am now wondering what does your
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; de.sourcepark.ms2.rife.MS2CredentialsManagerFactory return in
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; getCredentialsManager?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Have you written your own CredentialsManager that also implements
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; IdentifiableUsersManager?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Rodrigue
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Jun 19, 9:57 am, Matthias Barmeier
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18032780&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matthias.barme...@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Rodrigue,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I use an entry element class as arrival:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;arrival destid=&amp;quot;EntryElement&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; The EntryElement is configured like:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element id=&amp;quot;Entry&amp;quot;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; implementation=&amp;quot;de.sourcepark.ms2.rife.EntryElement&amp;quot;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; inherits=&amp;quot;AuthClient&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;outbean name=&amp;quot;customer&amp;quot; prefix=&amp;quot;pre_&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; classname=&amp;quot;de.sourcepark.ms2.rife.customer.CBCustomerActiveEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;autolink srcexit=&amp;quot;ClientCustomerEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;autolink srcexit=&amp;quot;CustomerChangePw&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/element&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; In the class I can call:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;RoleUserIdentity identity =
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; (RoleUserIdentity
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; )getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; to get the identity object and then:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;identity.getLogin()
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; To get the username. In the EntryElement you can set if you like a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; global var to reflect the logged in user and his role.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Hope this helps.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Ciao
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;Matthias
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Rodrigue wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Geert Bevin
&lt;br&gt;&amp;gt; Terracotta -&lt;a href=&quot;http://www.terracotta.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.terracotta.org&lt;/a&gt;&lt;br&gt;&amp;gt; Uwyn &amp;quot;Use what you need&amp;quot; -&lt;a href=&quot;http://uwyn.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://uwyn.com&lt;/a&gt;&lt;br&gt;&amp;gt; RIFE Java application framework -&lt;a href=&quot;http://rifers.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org&lt;/a&gt;&lt;br&gt;&amp;gt; Music and words -&lt;a href=&quot;http://gbevin.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gbevin.com&lt;/a&gt;&lt;/div&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18032780&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18032780&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/custom-authentication-and-participant-tp17869010s9330p18032780.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18031927</id>
	<title>Re: custom authentication and participant</title>
	<published>2008-06-20T08:22:30Z</published>
	<updated>2008-06-20T08:22:30Z</updated>
	<author>
		<name>Geert Bevin</name>
	</author>
	<content type="html">&lt;br&gt;Hi Rodrigue,
&lt;br&gt;&lt;br&gt;sorry that the documentation is a bit lacking in this regard. Have you &amp;nbsp;
&lt;br&gt;read through this &lt;a href=&quot;http://rifers.org/wiki/display/RIFE/Authentication+system+internals&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/Authentication+system+internals&lt;/a&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; ? I think that you should be able to get a better idea of how the &amp;nbsp;
&lt;br&gt;authentication internals work. Also make sure to read the Javadoc of &amp;nbsp;
&lt;br&gt;the relevant interfaces/classes.
&lt;br&gt;&lt;br&gt;As far as storing variables somewhere after the authentication &amp;nbsp;
&lt;br&gt;proceeds, this can be done in several ways. First, if you only want &amp;nbsp;
&lt;br&gt;this to be available to all the other elements in the same request, &amp;nbsp;
&lt;br&gt;it's best to use request attributes for this:
&lt;br&gt;&lt;a href=&quot;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#setRequestAttribute(java.lang.String,%20java.lang.Object&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#setRequestAttribute(java.lang.String,%20java.lang.Object&lt;/a&gt;)
&lt;br&gt;&lt;br&gt;This is what the identified element does. Of course, for that to work, &amp;nbsp;
&lt;br&gt;you have to make sure that your authentication element executes before &amp;nbsp;
&lt;br&gt;the rest, either by having it precede the others:
&lt;br&gt;&lt;a href=&quot;http://rifers.org/wiki/display/RIFE/Precedence&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/Precedence&lt;/a&gt;&lt;br&gt;&lt;br&gt;or by embedding it into your template and give it a high priority:
&lt;br&gt;&lt;a href=&quot;http://rifers.org/wiki/display/RIFE/Embedded+element+priorities&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/Embedded+element+priorities&lt;/a&gt;&lt;br&gt;&lt;br&gt;If you want to store these variables for a longer time, you can still &amp;nbsp;
&lt;br&gt;access the regular HTTP session within RIFE, you just have to turn on &amp;nbsp;
&lt;br&gt;raw access:
&lt;br&gt;&lt;a href=&quot;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#setProhibitRawAccess(boolean&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#setProhibitRawAccess(boolean&lt;/a&gt;)
&lt;br&gt;&lt;br&gt;After that you can use the unmanaged HTTP request and access the &amp;nbsp;
&lt;br&gt;session:
&lt;br&gt;&lt;a href=&quot;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#getHttpServletRequest(&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/docs/api/com/uwyn/rife/engine/ElementSupport.html#getHttpServletRequest(&lt;/a&gt;)
&lt;br&gt;&lt;br&gt;Other ways of doing this is by creating stateful components:
&lt;br&gt;&lt;a href=&quot;http://rifers.org/wiki/display/RIFE/Stateful+components&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/Stateful+components&lt;/a&gt;&lt;br&gt;&lt;br&gt;... and if you don't want to store your RIFE flow state on the client- 
&lt;br&gt;side, you can use other back-end stores, like sessions for instance:
&lt;br&gt;&lt;a href=&quot;http://rifers.org/wiki/display/RIFE/Configurable+state+storage&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/Configurable+state+storage&lt;/a&gt;&lt;br&gt;&lt;br&gt;Hope this helps and if you find areas in the documentation that could &amp;nbsp;
&lt;br&gt;use some improvement, please feel free to contribute.
&lt;br&gt;&lt;br&gt;Take care,
&lt;br&gt;&lt;br&gt;Geert
&lt;br&gt;&lt;br&gt;On 20 Jun 2008, at 11:10, Rodrigue wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hi Matthias,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have finally managed to do what I wanted to do, maybe not in the
&lt;br&gt;&amp;gt; best way though.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; You didn't have to explicitly worry about the IdentifiableUsersManager
&lt;br&gt;&amp;gt; interface because your custom manager implements RoleUsersManager,
&lt;br&gt;&amp;gt; which extends IdentifiableUsersManager. Still, you certainly had to
&lt;br&gt;&amp;gt; implement getLogin() and getAttributes(). I only implement
&lt;br&gt;&amp;gt; IdentifiableUsersManager because I don't need the role feature.
&lt;br&gt;&amp;gt; However, I have written a custom class that extends
&lt;br&gt;&amp;gt; RoleUsersAttributes so that the getAttributes() method on the
&lt;br&gt;&amp;gt; RoleUserIdentity returns my custom object in which I can store more
&lt;br&gt;&amp;gt; information than just login, password, and role.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I read the user's guide section on managing user data (
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://rifers.org/wiki/display/RIFE/GuideDatabaseUsers#GuideDatabaseUsers-sect1additionaldata&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/GuideDatabaseUsers#GuideDatabaseUsers-sect1additionaldata&lt;/a&gt;&lt;br&gt;&amp;gt; ) but wasn't sure how to link that to my custom credentials manager.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Also, about your IDENTIFIED element, I don't think it is used at all
&lt;br&gt;&amp;gt; unless you have other elements that inherits from it, so I wasn't sure
&lt;br&gt;&amp;gt; either about how to use it.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Anyway, my application works at the moment so I will keep going even
&lt;br&gt;&amp;gt; though I doubt I am really managing my user data the best way. Also,
&lt;br&gt;&amp;gt; some details of rife are still obscure to me. I am not sure how the
&lt;br&gt;&amp;gt; identity information is saved. I think it is sent to the client and I
&lt;br&gt;&amp;gt; don't know how to explicitly keep it on the server side (which, in my
&lt;br&gt;&amp;gt; understanding, would require defining a db table).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; All that is a bit of thinking aloud but maybe it can help somebody
&lt;br&gt;&amp;gt; who'll read it. In the meantime, I'll keep tinkering with rife until I
&lt;br&gt;&amp;gt; understand it more. At any rate, thanks for your help.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Rodrigue
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Jun 19, 11:09 am, Matthias Barmeier
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18031927&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matthias.barme...@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; Hi Rodrigue,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; my Factory is really simple:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; package de.sourcepark.ms2.rife;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; import com.uwyn.rife.authentication.CredentialsManager;
&lt;br&gt;&amp;gt;&amp;gt; import
&lt;br&gt;&amp;gt;&amp;gt; com 
&lt;br&gt;&amp;gt;&amp;gt; .uwyn 
&lt;br&gt;&amp;gt;&amp;gt; .rife.authentication.credentialsmanagers.CredentialsManagerFactory;
&lt;br&gt;&amp;gt;&amp;gt; import com.uwyn.rife.ioc.HierarchicalProperties;
&lt;br&gt;&amp;gt;&amp;gt; import com.uwyn.rife.ioc.exceptions.PropertyValueException;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; No Id on have a Manager that implementes the interface you &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; mentioned my
&lt;br&gt;&amp;gt;&amp;gt; decalaration is:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;public class MS2CredentialsManager implements CredentialsManager,
&lt;br&gt;&amp;gt;&amp;gt; RoleUsersManager
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; What I have copied from some examples and not really understand is &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; this
&lt;br&gt;&amp;gt;&amp;gt; main.xml element:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element id=&amp;quot;IDENTIFIED&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; extends=&amp;quot;rife/authenticated/identified.xml&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;authElementId&amp;quot;&amp;gt;AuthClient&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;childtrigger name=&amp;quot;authid&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/element&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; May be this creates the things you need on the fly.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Ciao
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; Matthias
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Rodrigue wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hi Matthias,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; thank you again for your reply. I still have some trouble though.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; When I call
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; RoleUserIdentity identity =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (RoleUserIdentity 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; )getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the identity is null. After looking at the rife source code I found
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; out that this is because my credentials manager does not implement
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; IdentifiableUsersManager. So I am now wondering what does your
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; de.sourcepark.ms2.rife.MS2CredentialsManagerFactory return in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; getCredentialsManager?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Have you written your own CredentialsManager that also implements
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; IdentifiableUsersManager?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Rodrigue
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Jun 19, 9:57 am, Matthias Barmeier
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18031927&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matthias.barme...@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hi Rodrigue,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I use an entry element class as arrival:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;arrival destid=&amp;quot;EntryElement&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The EntryElement is configured like:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;element id=&amp;quot;Entry&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implementation=&amp;quot;de.sourcepark.ms2.rife.EntryElement&amp;quot; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; inherits=&amp;quot;AuthClient&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;outbean name=&amp;quot;customer&amp;quot; prefix=&amp;quot;pre_&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; classname=&amp;quot;de.sourcepark.ms2.rife.customer.CBCustomerActiveEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;autolink srcexit=&amp;quot;ClientCustomerEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;autolink srcexit=&amp;quot;CustomerChangePw&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/element&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; In the class I can call:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;RoleUserIdentity identity =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (RoleUserIdentity 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; )getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to get the identity object and then:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;identity.getLogin()
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To get the username. In the EntryElement you can set if you like a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; global var to reflect the logged in user and his role.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hope this helps.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ciao
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;Matthias
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Rodrigue wrote:
&lt;br&gt;&amp;gt; &amp;gt;
&lt;/div&gt;&lt;br&gt;--
&lt;br&gt;Geert Bevin
&lt;br&gt;Terracotta - &lt;a href=&quot;http://www.terracotta.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.terracotta.org&lt;/a&gt;&lt;br&gt;Uwyn &amp;quot;Use what you need&amp;quot; - &lt;a href=&quot;http://uwyn.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://uwyn.com&lt;/a&gt;&lt;br&gt;RIFE Java application framework - &lt;a href=&quot;http://rifers.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org&lt;/a&gt;&lt;br&gt;Music and words - &lt;a href=&quot;http://gbevin.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gbevin.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18031927&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18031927&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/custom-authentication-and-participant-tp17869010s9330p18031927.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18026026</id>
	<title>Re: custom authentication and participant</title>
	<published>2008-06-20T02:10:59Z</published>
	<updated>2008-06-20T02:10:59Z</updated>
	<author>
		<name>Rodrigue-2</name>
	</author>
	<content type="html">&lt;br&gt;Hi Matthias,
&lt;br&gt;&lt;br&gt;I have finally managed to do what I wanted to do, maybe not in the
&lt;br&gt;best way though.
&lt;br&gt;&lt;br&gt;You didn't have to explicitly worry about the IdentifiableUsersManager
&lt;br&gt;interface because your custom manager implements RoleUsersManager,
&lt;br&gt;which extends IdentifiableUsersManager. Still, you certainly had to
&lt;br&gt;implement getLogin() and getAttributes(). I only implement
&lt;br&gt;IdentifiableUsersManager because I don't need the role feature.
&lt;br&gt;However, I have written a custom class that extends
&lt;br&gt;RoleUsersAttributes so that the getAttributes() method on the
&lt;br&gt;RoleUserIdentity returns my custom object in which I can store more
&lt;br&gt;information than just login, password, and role.
&lt;br&gt;&lt;br&gt;I read the user's guide section on managing user data (
&lt;br&gt;&lt;a href=&quot;http://rifers.org/wiki/display/RIFE/GuideDatabaseUsers#GuideDatabaseUsers-sect1additionaldata&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://rifers.org/wiki/display/RIFE/GuideDatabaseUsers#GuideDatabaseUsers-sect1additionaldata&lt;/a&gt;&lt;br&gt;) but wasn't sure how to link that to my custom credentials manager.
&lt;br&gt;&lt;br&gt;Also, about your IDENTIFIED element, I don't think it is used at all
&lt;br&gt;unless you have other elements that inherits from it, so I wasn't sure
&lt;br&gt;either about how to use it.
&lt;br&gt;&lt;br&gt;Anyway, my application works at the moment so I will keep going even
&lt;br&gt;though I doubt I am really managing my user data the best way. Also,
&lt;br&gt;some details of rife are still obscure to me. I am not sure how the
&lt;br&gt;identity information is saved. I think it is sent to the client and I
&lt;br&gt;don't know how to explicitly keep it on the server side (which, in my
&lt;br&gt;understanding, would require defining a db table).
&lt;br&gt;&lt;br&gt;All that is a bit of thinking aloud but maybe it can help somebody
&lt;br&gt;who'll read it. In the meantime, I'll keep tinkering with rife until I
&lt;br&gt;understand it more. At any rate, thanks for your help.
&lt;br&gt;&lt;br&gt;Rodrigue
&lt;br&gt;&lt;br&gt;On Jun 19, 11:09 am, Matthias Barmeier
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18026026&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matthias.barme...@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Rodrigue,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; my Factory is really simple:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; package de.sourcepark.ms2.rife;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; import com.uwyn.rife.authentication.CredentialsManager;
&lt;br&gt;&amp;gt; import
&lt;br&gt;&amp;gt; com.uwyn.rife.authentication.credentialsmanagers.CredentialsManagerFactory;
&lt;br&gt;&amp;gt; import com.uwyn.rife.ioc.HierarchicalProperties;
&lt;br&gt;&amp;gt; import com.uwyn.rife.ioc.exceptions.PropertyValueException;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; No Id on have a Manager that implementes the interface you mentioned my
&lt;br&gt;&amp;gt; decalaration is:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; public class MS2CredentialsManager implements CredentialsManager,
&lt;br&gt;&amp;gt; RoleUsersManager
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; What I have copied from some examples and not really understand is this
&lt;br&gt;&amp;gt; main.xml element:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;element id=&amp;quot;IDENTIFIED&amp;quot;
&lt;br&gt;&amp;gt; extends=&amp;quot;rife/authenticated/identified.xml&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;authElementId&amp;quot;&amp;gt;AuthClient&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;childtrigger name=&amp;quot;authid&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/element&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; May be this creates the things you need on the fly.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ciao
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Matthias
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Rodrigue wrote:
&lt;br&gt;&amp;gt; &amp;gt; Hi Matthias,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; thank you again for your reply. I still have some trouble though.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; When I call
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; RoleUserIdentity identity =
&lt;br&gt;&amp;gt; &amp;gt; (RoleUserIdentity)getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; the identity is null. After looking at the rife source code I found
&lt;br&gt;&amp;gt; &amp;gt; out that this is because my credentials manager does not implement
&lt;br&gt;&amp;gt; &amp;gt; IdentifiableUsersManager. So I am now wondering what does your
&lt;br&gt;&amp;gt; &amp;gt; de.sourcepark.ms2.rife.MS2CredentialsManagerFactory return in
&lt;br&gt;&amp;gt; &amp;gt; getCredentialsManager?
&lt;br&gt;&amp;gt; &amp;gt; Have you written your own CredentialsManager that also implements
&lt;br&gt;&amp;gt; &amp;gt; IdentifiableUsersManager?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Rodrigue
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Jun 19, 9:57 am, Matthias Barmeier
&lt;br&gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18026026&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matthias.barme...@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Hi Rodrigue,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I use an entry element class as arrival:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;lt;arrival destid=&amp;quot;EntryElement&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; The EntryElement is configured like:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;element id=&amp;quot;Entry&amp;quot;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; implementation=&amp;quot;de.sourcepark.ms2.rife.EntryElement&amp;quot; inherits=&amp;quot;AuthClient&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;outbean name=&amp;quot;customer&amp;quot; prefix=&amp;quot;pre_&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; classname=&amp;quot;de.sourcepark.ms2.rife.customer.CBCustomerActiveEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;autolink srcexit=&amp;quot;ClientCustomerEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;autolink srcexit=&amp;quot;CustomerChangePw&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/element&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; In the class I can call:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; RoleUserIdentity identity =
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; (RoleUserIdentity)getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; to get the identity object and then:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; identity.getLogin()
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; To get the username. In the EntryElement you can set if you like a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; global var to reflect the logged in user and his role.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Hope this helps.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Ciao
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Matthias
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Rodrigue wrote:
&lt;/div&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18026026&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18026026&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/custom-authentication-and-participant-tp17869010s9330p18026026.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18005787</id>
	<title>Re: custom authentication and participant</title>
	<published>2008-06-19T03:09:20Z</published>
	<updated>2008-06-19T03:09:20Z</updated>
	<author>
		<name>Matthias Barmeier-2</name>
	</author>
	<content type="html">&lt;br&gt;Hi Rodrigue,
&lt;br&gt;&lt;br&gt;my Factory is really simple:
&lt;br&gt;&lt;br&gt;package de.sourcepark.ms2.rife;
&lt;br&gt;&lt;br&gt;import com.uwyn.rife.authentication.CredentialsManager;
&lt;br&gt;import 
&lt;br&gt;com.uwyn.rife.authentication.credentialsmanagers.CredentialsManagerFactory;
&lt;br&gt;import com.uwyn.rife.ioc.HierarchicalProperties;
&lt;br&gt;import com.uwyn.rife.ioc.exceptions.PropertyValueException;
&lt;br&gt;&lt;br&gt;&lt;br&gt;No Id on have a Manager that implementes the interface you mentioned my 
&lt;br&gt;decalaration is:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; public class MS2CredentialsManager implements CredentialsManager, 
&lt;br&gt;RoleUsersManager
&lt;br&gt;&lt;br&gt;&lt;br&gt;What I have copied from some examples and not really understand is this 
&lt;br&gt;main.xml element:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;element id=&amp;quot;IDENTIFIED&amp;quot; 
&lt;br&gt;extends=&amp;quot;rife/authenticated/identified.xml&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;authElementId&amp;quot;&amp;gt;AuthClient&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;childtrigger name=&amp;quot;authid&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/element&amp;gt;
&lt;br&gt;&lt;br&gt;May be this creates the things you need on the fly.
&lt;br&gt;&lt;br&gt;Ciao
&lt;br&gt;&amp;nbsp; &amp;nbsp;Matthias
&lt;br&gt;&lt;br&gt;&lt;br&gt;Rodrigue wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Matthias,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; thank you again for your reply. I still have some trouble though.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; When I call
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; RoleUserIdentity identity =
&lt;br&gt;&amp;gt; (RoleUserIdentity)getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; the identity is null. After looking at the rife source code I found
&lt;br&gt;&amp;gt; out that this is because my credentials manager does not implement
&lt;br&gt;&amp;gt; IdentifiableUsersManager. So I am now wondering what does your
&lt;br&gt;&amp;gt; de.sourcepark.ms2.rife.MS2CredentialsManagerFactory return in
&lt;br&gt;&amp;gt; getCredentialsManager?
&lt;br&gt;&amp;gt; Have you written your own CredentialsManager that also implements
&lt;br&gt;&amp;gt; IdentifiableUsersManager?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Rodrigue
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Jun 19, 9:57 am, Matthias Barmeier
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18005787&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matthias.barme...@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; Hi Rodrigue,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I use an entry element class as arrival:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;arrival destid=&amp;quot;EntryElement&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The EntryElement is configured like:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;element id=&amp;quot;Entry&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt; implementation=&amp;quot;de.sourcepark.ms2.rife.EntryElement&amp;quot; inherits=&amp;quot;AuthClient&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;outbean name=&amp;quot;customer&amp;quot; prefix=&amp;quot;pre_&amp;quot;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; classname=&amp;quot;de.sourcepark.ms2.rife.customer.CBCustomerActiveEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;autolink srcexit=&amp;quot;ClientCustomerEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;autolink srcexit=&amp;quot;CustomerChangePw&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/element&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; In the class I can call:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; RoleUserIdentity identity =
&lt;br&gt;&amp;gt;&amp;gt; (RoleUserIdentity)getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; to get the identity object and then:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; identity.getLogin()
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; To get the username. In the EntryElement you can set if you like a
&lt;br&gt;&amp;gt;&amp;gt; global var to reflect the logged in user and his role.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Hope this helps.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Ciao
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Matthias
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Rodrigue wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18005787&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18005787&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/custom-authentication-and-participant-tp17869010s9330p18005787.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18004570</id>
	<title>Re: custom authentication and participant</title>
	<published>2008-06-19T03:02:02Z</published>
	<updated>2008-06-19T03:02:02Z</updated>
	<author>
		<name>Rodrigue-2</name>
	</author>
	<content type="html">&lt;br&gt;Hi Matthias,
&lt;br&gt;&lt;br&gt;thank you again for your reply. I still have some trouble though.
&lt;br&gt;&lt;br&gt;When I call
&lt;br&gt;&lt;br&gt;RoleUserIdentity identity =
&lt;br&gt;(RoleUserIdentity)getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&lt;br&gt;the identity is null. After looking at the rife source code I found
&lt;br&gt;out that this is because my credentials manager does not implement
&lt;br&gt;IdentifiableUsersManager. So I am now wondering what does your
&lt;br&gt;de.sourcepark.ms2.rife.MS2CredentialsManagerFactory return in
&lt;br&gt;getCredentialsManager?
&lt;br&gt;Have you written your own CredentialsManager that also implements
&lt;br&gt;IdentifiableUsersManager?
&lt;br&gt;&lt;br&gt;Rodrigue
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;On Jun 19, 9:57 am, Matthias Barmeier
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18004570&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matthias.barme...@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Rodrigue,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I use an entry element class as arrival:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;lt;arrival destid=&amp;quot;EntryElement&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The EntryElement is configured like:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;element id=&amp;quot;Entry&amp;quot;
&lt;br&gt;&amp;gt; implementation=&amp;quot;de.sourcepark.ms2.rife.EntryElement&amp;quot; inherits=&amp;quot;AuthClient&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;outbean name=&amp;quot;customer&amp;quot; prefix=&amp;quot;pre_&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; classname=&amp;quot;de.sourcepark.ms2.rife.customer.CBCustomerActiveEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;autolink srcexit=&amp;quot;ClientCustomerEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;autolink srcexit=&amp;quot;CustomerChangePw&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/element&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; In the class I can call:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; RoleUserIdentity identity =
&lt;br&gt;&amp;gt; (RoleUserIdentity)getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; to get the identity object and then:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; identity.getLogin()
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; To get the username. In the EntryElement you can set if you like a
&lt;br&gt;&amp;gt; global var to reflect the logged in user and his role.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Hope this helps.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ciao
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Matthias
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Rodrigue wrote:
&lt;br&gt;&amp;gt; &amp;gt; Hi Matthias,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Thank you for your reply. I actually have the authentication working
&lt;br&gt;&amp;gt; &amp;gt; as well. However I am now struggling to set and get values in the
&lt;br&gt;&amp;gt; &amp;gt; session once the authentication is successful. Basically, once the
&lt;br&gt;&amp;gt; &amp;gt; credentials are checked and correct, I want to add 2 variables in the
&lt;br&gt;&amp;gt; &amp;gt; session so that all the elements in the subsite that inherits from
&lt;br&gt;&amp;gt; &amp;gt; AUTH can have access to them.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I thought this should be done with global variables but I don't know
&lt;br&gt;&amp;gt; &amp;gt; how to set and get them. I have tried to extend the
&lt;br&gt;&amp;gt; &amp;gt; RoleUserAuthenticated class and do a setOutput() inside the
&lt;br&gt;&amp;gt; &amp;gt; acceptedCredentials() hook. I ran into an exception saying &amp;quot;beanClass
&lt;br&gt;&amp;gt; &amp;gt; cannot be null&amp;quot; thrown by ElementSupport.generateEmptyForm().
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Are you trying to do something similar with your inbean and outbean?
&lt;br&gt;&amp;gt; &amp;gt; If so, how does the inbean gets created and populated?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I have spent a few hours reading the wiki, the cookbook, the javadoc,
&lt;br&gt;&amp;gt; &amp;gt; the source code, and I am now confused on how to do what I want. Also,
&lt;br&gt;&amp;gt; &amp;gt; how to get access to the credentials object from an element that
&lt;br&gt;&amp;gt; &amp;gt; inherits from AUTH? It seems tht it is possible only if you have the
&lt;br&gt;&amp;gt; &amp;gt; 'login' value...Really, I don't know where to look now.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I'd really appreciate any help.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Rodrigue
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Jun 18, 5:02 pm, Matthias Barmeier
&lt;br&gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18004570&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matthias.barme...@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I have written a CredentialsManager to. I am not sure how this rife
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; magic works but this is my configuration:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; main.xml:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;element id=&amp;quot;AuthClient&amp;quot; extends=&amp;quot;rife/authenticated/memory.xml&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;password_encryption&amp;quot;&amp;gt;SHA&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;role&amp;quot;&amp;gt;Client,Admin&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!-- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;role&amp;quot;&amp;gt;Admin&amp;lt;/property&amp;gt; --&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;authvar_type&amp;quot;&amp;gt;cookie&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;template_name&amp;quot;&amp;gt;authentication.admin&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; name=&amp;quot;credentialsmanagerfactory_class&amp;quot;&amp;gt;de.sourcepark.ms2.rife.MS2CredentialsManagerFactory&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;submission name=&amp;quot;credentials&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;login&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;password&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/submission&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;childtrigger name=&amp;quot;authid&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/element&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;element id=&amp;quot;CustomerChangePw&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; implementation=&amp;quot;de.sourcepark.ms2.rife.customer.EditCustomerPw&amp;quot;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url=&amp;quot;/customerchangepw&amp;quot; inherits=&amp;quot;AuthClient&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;inbean name=&amp;quot;customer&amp;quot; prefix=&amp;quot;pre_&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; classname=&amp;quot;de.sourcepark.ms2.rife.customer.CBCustomerPwEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;outbean name=&amp;quot;customer&amp;quot; prefix=&amp;quot;pre_&amp;quot;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; classname=&amp;quot;de.sourcepark.ms2.rife.customer.CBCustomerActiveEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;autolink srcexit=&amp;quot;ClientCustomerEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;autolink srcexit=&amp;quot;CustomerChangePw&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/element&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; this works perfect for me.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Hope this helps.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Ciao
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; Matthias
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Rodrigue wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I am working on my first Rife project and I need to authenticate my
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; users against a SOAP server. To do this, assuming I have understood
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; the way it works, I have written a class that implements
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; CredentialsManagerFactory to return my own CredentialsManager. I have
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; added a credentialsmanagerfactory_class property to my authentication
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; element. I have two questions though:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;nbsp; - Should I use the memory-based or the db authentication? Does it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; matter at all since I won't use either the users xml file or the user
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; table? Or should I not add any participant for the authentication in
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; my participants.xml?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;nbsp; - If I need to declare a participant, how should I declare it? No
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; users.xml param or no datasource?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Rodrigue
&lt;/div&gt;--~--~---------~--~----~------------~-------~--~----~
&lt;br&gt;You received this message because you are subscribed to the Google Groups &amp;quot;rife-users&amp;quot; group.
&lt;br&gt;To post to this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18004570&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users@...&lt;/a&gt;
&lt;br&gt;To unsubscribe from this group, send email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18004570&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rife-users-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For more options, visit this group at &lt;a href=&quot;http://groups.google.com/group/rife-users?hl=en&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://groups.google.com/group/rife-users?hl=en&lt;/a&gt;&lt;br&gt;-~----------~----~----~----~------~----~------~--~---
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/custom-authentication-and-participant-tp17869010s9330p18004570.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-18000409</id>
	<title>Re: custom authentication and participant</title>
	<published>2008-06-19T01:57:01Z</published>
	<updated>2008-06-19T01:57:01Z</updated>
	<author>
		<name>Matthias Barmeier-2</name>
	</author>
	<content type="html">&lt;br&gt;Hi Rodrigue,
&lt;br&gt;&lt;br&gt;I use an entry element class as arrival:
&lt;br&gt;&lt;br&gt;&amp;lt;arrival destid=&amp;quot;EntryElement&amp;quot;/&amp;gt;
&lt;br&gt;&lt;br&gt;The EntryElement is configured like:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;element id=&amp;quot;Entry&amp;quot; 
&lt;br&gt;implementation=&amp;quot;de.sourcepark.ms2.rife.EntryElement&amp;quot; inherits=&amp;quot;AuthClient&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;outbean name=&amp;quot;customer&amp;quot; prefix=&amp;quot;pre_&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;classname=&amp;quot;de.sourcepark.ms2.rife.customer.CBCustomerActiveEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;autolink srcexit=&amp;quot;ClientCustomerEdit&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;autolink srcexit=&amp;quot;CustomerChangePw&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/element&amp;gt;
&lt;br&gt;&lt;br&gt;In the class I can call:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; RoleUserIdentity identity = 
&lt;br&gt;(RoleUserIdentity)getRequestAttribute(Identified.IDENTITY_ATTRIBUTE_NAME);
&lt;br&gt;&lt;br&gt;to get the identity object and then:
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; identity.getLogin()
&lt;br&gt;&lt;br&gt;To get the username. In the EntryElement you can set if you like a 
&lt;br&gt;global var to reflect the logged in user and his role.
&lt;br&gt;&lt;br&gt;Hope this helps.
&lt;br&gt;&lt;br&gt;Ciao
&lt;br&gt;&amp;nbsp; &amp;nbsp; Matthias
&lt;br&gt;&lt;br&gt;&lt;br&gt;Rodrigue wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Hi Matthias,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Thank you for your reply. I actually have the authentication working
&lt;br&gt;&amp;gt; as well. However I am now struggling to set and get values in the
&lt;br&gt;&amp;gt; session once the authentication is successful. Basically, once the
&lt;br&gt;&amp;gt; credentials are checked and correct, I want to add 2 variables in the
&lt;br&gt;&amp;gt; session so that all the elements in the subsite that inherits from
&lt;br&gt;&amp;gt; AUTH can have access to them.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I thought this should be done with global variables but I don't know
&lt;br&gt;&amp;gt; how to set and get them. I have tried to extend the
&lt;br&gt;&amp;gt; RoleUserAuthenticated class and do a setOutput() inside the
&lt;br&gt;&amp;gt; acceptedCredentials() hook. I ran into an exception saying &amp;quot;beanClass
&lt;br&gt;&amp;gt; cannot be null&amp;quot; thrown by ElementSupport.generateEmptyForm().
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Are you trying to do something similar with your inbean and outbean?
&lt;br&gt;&amp;gt; If so, how does the inbean gets created and populated?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I have spent a few hours reading the wiki, the cookbook, the javadoc,
&lt;br&gt;&amp;gt; the source code, and I am now confused on how to do what I want. Also,
&lt;br&gt;&amp;gt; how to get access to the credentials object from an element that
&lt;br&gt;&amp;gt; inherits from AUTH? It seems tht it is possible only if you have the
&lt;br&gt;&amp;gt; 'login' value...Really, I don't know where to look now.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'd really appreciate any help.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Rodrigue
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Jun 18, 5:02 pm, Matthias Barmeier
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=18000409&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;matthias.barme...@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I have written a CredentialsManager to. I am not sure how this rife
&lt;br&gt;&amp;gt;&amp;gt; magic works but this is my configuration:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; main.xml:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;element id=&amp;quot;AuthClient&amp;quot; extends=&amp;quot;rife/authenticated/memory.xml&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;password_encryption&amp;quot;&amp;gt;SHA&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;role&amp;quot;&amp;gt;Client,Admin&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;!-- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;role&amp;quot;&amp;gt;Admin&amp;lt;/property&amp;gt; --&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;authvar_type&amp;quot;&amp;gt;cookie&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property name=&amp;quot;template_name&amp;quot;&amp;gt;authentication.admin&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;property
&lt;br&gt;&amp;gt;&amp;gt; name=&amp;quot;credentialsmanagerfactory_class&amp;quot;&amp;gt;de.sourcepark.ms2.rife.MS2CredentialsManagerFactory&amp;lt;/property&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;submission name=&amp;quot;credentials&amp;quot;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;param name=&amp;quot;login&amp;quot;/&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp