You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by "Ternes, Oliver" <ol...@iwka.de> on 2003/06/12 13:32:25 UTC

Authentication: XSP & Database

Hi everyone,

I have problems using the authentication framework and session management. I
read the user documentation thousand times and I tried to modify the Portal
framework to suit my needs, but it doesn't work at all.
Well, I want to create a login using a database. I need to retrieve the
rights connected to a user and his role. I wrote a XSP to get that data, it
looks like this: 

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsp:page language="java" xmlns:xsp="http://apache.org/xsp"
xmlns:esql="http://apache.org/cocoon/SQL/v2"
xmlns:xsp-request="http://apache.org/xsp/request/2.0"
xmlns:xsp-session="http://apache.org/xsp/session/2.0"
create-session="true">

<authentication>
   <xsp:logic>
      String userName = <xsp-request:get-parameter name="userName" />;
      String userPass = <xsp-request:get-parameter name="userPW" />;
      String userRole = <xsp-request:get-parameter name="userRole" />;
      <esql:connection>
	<esql:pool>AutOIPS</esql:pool>
		<esql:execute-query>
			<esql:query>
				...
			</esql:query>
		<esql:results>
	<esql:row-results>
	<ID><esql:get-int column="userID" /></ID>
	<role><xsp-request:get-parameter name="userRole" /></role>
		<data>
			<xsp:logic>if (
				<esql:get-string
column="rightName"/>.equals("read")) {
			</xsp:logic>
				<read>read</read>
			<xsp:logic>
				}if (<esql:get-string
column="rightName"/>.equals("execute"))
			{</xsp:logic>
				<exec>execute</exec>
			<xsp:logic>}</xsp:logic>
		</data>
	</esql:row-results>
...
	  </authentication>
</xsp:page>

I also get the data but how can I transform them into a valid session
object? I adapted my sitemap like it is shown in the cocoon documentation,
but it doesn't work - here's the extract:

    <map:match pattern="login*">
    	<map:act type="auth-loggedIn">
   		<map:parameter name="handler" value="iwkahandler" />
	        	<map:redirect-to uri="projects/index.xml"/>
	</map:act>
        	<map:act type="auth-login">
  		<map:parameter name="handler" value="iwkahandler" />
        		<map:parameter name="parameter_userName"
value="{request:userName}" />
        		<map:parameter name="parameter_userPW"
value="{request:userPW}" />
        		<map:parameter name="parameter_userRole"
value="{request:userRole}" />
	        	<map:redirect-to uri="projects/index.xml"/>
        	</map:act>
        	<map:generate src="login.xml"/>
        	<map:transform src="styles/login-html.xsl"/>
        	<map:transform type="encodeURL"/>
        	<map:serialize/>
    </map:match>

    <map:match pattern="**/logon.xsp">
	    	<map:generate type="serverpages" src="xsp/logon.xsp" />
        		<map:transform type="session"/>
	    	<map:serialize type="xml"/>
    </map:match>

I hope you can help me ... 

Some more technical data:
	Win2k SP3, Cocoon 2.1 within the jetty container, Internet Explorer
6.0

Thanks
Oliver
	

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