You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Ungvári Sándor <us...@hszk.bme.hu> on 2003/03/16 15:31:45 UTC

Auth-protect action problem

Hi!

I'd like to use the user authentication in cocoon 2.0.4. but I always get 
some errors. I've read much about this topic but I couldn't solve my 
problem. Here is my sitemap:
...
<pipelines>

<map:component-configurations>
  <authentication-manager>
   <handlers>
     <handler name="userPortal">
       <redirect-to uri="login"/>
       <authentication uri="userLogin"/>
     </handler>
   </handlers>
</authentication-manager>
</map:component-configurations>

<pipeline>
...
         <map:match pattern="login">
                 <map:generate type="xsp" src="login.xsp"/>
                 <map:serialize/>
         </map:match>

     <map:match pattern="userLogin">
                 <map:act type="auth-login">
                                <map:parameter name="handler" value 
="userPortal"/>
                                <map:parameter name="parameter_userid" 
value ="{request:user}"/>
                                <map:parameter name="parameter_password" 
value="{request:password}"/>
                                <map:redirect-to uri="services"/>
                          </map:act>
                          <!-- authentication failed: Back to login-page -->
                          <map:generate type="xsp" src="login.xsp"/>
                          <map:serialize/>
                    </map:match>

<map:match pattern="services">
                 <map:act type="auth-protect">
                         <map:parameter name="handler" value ="userPortal"/>
                         <map:read src="docs/bart.gif" mime-type="image/gif"/>
                 </map:act>
         </map:match>
...
</pipeline>
...


type fatal

message UnnamedSelector: ComponentSelector could not find the component for 
hint [auth-protect]

description org.apache.avalon.framework.component.ComponentException: 
UnnamedSelector: ComponentSelector could not find the component for hint 
[auth-protect]

sender org.apache.cocoon.servlet.CocoonServlet


Should I define anything like this
<map:components>
         <map:actions>
                 <map:action name="auth-protect" 
logger="sitemap.action.auth-protect" 
src="org.apache.cocoon.webapps.authentication.acting.AuthAction"/>
         <map:actions>
...
???

If I do this the result is:

message Error in sitemap configuration : 
org.apache.cocoon.webapps.authentication.acting.AuthAction

description 
org.apache.avalon.framework.configuration.ConfigurationException: Error in 
sitemap configuration : 
org.apache.cocoon.webapps.authentication.acting.AuthAction

sender org.apache.cocoon.servlet.CocoonServlet

Maybe I've to add something to cocoon.xconf? Or what?

Please HELP me!!! q:-)
Soma 


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


Re: Auth-protect action problem

Posted by Lionel Crine <cr...@4dconcept.fr>.
Hi,
Here is the sunshine part from my sitemap. I use cocoon-2.0.4.

1/ in the map:components element
  <!-- ======================= SunShine =========================== -->
<map:actions>
     <map:action name="sunRise_login" 
src="org.apache.cocoon.sunshine.sunrise.acting.LoginAction"/>
     <map:action name="sunRise_logout" 
src="org.apache.cocoon.sunshine.sunrise.acting.LogoutAction"/>
     <map:action name="sunRise_loggedIn" 
src="org.apache.cocoon.sunshine.sunrise.acting.LoggedInAction"/>
     <map:action name="sunShine_session" 
src="org.apache.cocoon.sunshine.acting.SessionAction"/>
     <map:action name="sunSpot_auth" 
src="org.apache.cocoon.sunshine.sunspot.acting.AuthAction"/>
     <map:action name="sunRise_auth" 
src="org.apache.cocoon.sunshine.sunrise.acting.AuthAction">
       <handlers>
         <handler name="foo_handler" 
xmlns:map="http://apache.org/cocoon/sitemap/1.0" 
xmlns:sunshine="http://sunshine.sundn.de/sunshine/1.0">
	  <redirect-to uri="cocoon://login_page"/>
	  <authentication uri="cocoon://authuser"/>
	</handler>
       </handlers>
     </map:action>
    </map:actions>


2/ in the map:pipelines element

  <map:pipeline>
     <!-- ======================= SunShine =========================== -->
       	<map:match pattern="demo">
	    <!-- check you are already logged -->
	    <map:act type="sunRise_loggedIn">
     	      <map:parameter name="handler" value="foo_handler"/>
	      <map:redirect-to uri="protected/display"/>
	    </map:act>
	    <!-- if not go to page login-->
	    <map:generate type="serverpages" src="demo/login_page.xsp"/>
	    <map:transform src="demo/login_page.xsl"/>
	    <map:transform type="encodeURL"/>
	    <map:serialize type="html"/>
	</map:match>


	<!-- the login which call authuser via the handler -->
	<map:match pattern="login">
	    <!-- check if the user is logged -->
	    <map:act type="sunRise_loggedIn">
     	        <map:parameter name="handler" value="foo_handler"/>
	        <map:redirect-to uri="protected/display"/>
	    </map:act>
	    <!-- log the user -->
	    <map:act type="sunRise_login">
	    <map:act type="sunShine_session"/>
	      <map:parameter name="handler" value="foo_handler"/>
	      <map:parameter name="parameter_name" value="request:name"/>
	      <map:parameter name="parameter_password" value="request:password"/>
               <!-- if the authentication is successfull then this redirect 
will be performed -->
	      <map:redirect-to uri="demo"/>
	    </map:act>
	    <!-- authentication failed -->
	    <map:generate src="demo/login_failed.xml"/>
	    <map:transform src="demo/login_failed.xsl"/>
	    <map:serialize type="html"/>
	</map:match>
	

         <!-- the authentication -->
	<map:match pattern="authuser">
	    <map:generate src="demo/user.xml"/>
	    <!-- check the user -->
	    <map:transform src="demo/user.xsl">
               <map:parameter name="use-request-parameters" value="true"/>
             </map:transform>
             <map:serialize type="xml"/>
         </map:match>


	<!-- ========= the protected resources ========== -->
	<map:match pattern="protected/**">

		<map:act type="sunRise_auth">
	          <map:parameter name="handler" value="foo_handler"/>
	
	        <!-- welcome page -->
		<map:match pattern="protected/display">
		  <map:generate type="serverpages" src="demo/display.xsp"/>
		  <map:transform type="xslt" src="demo/display.xsl">
                         <map:parameter name="use-request-parameters" 
value="true"/>
		  </map:transform>
		  <map:serialize type="html"/>
	           </map:match>
	
	....
	   </map:act>
	</map:match>
	<map:pipeline>


Hope that help.

Moreover I had this error but I don't remember how I solved it. I think the 
handler (authentication-manager) is not in the right place.

Lionel


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