You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/08/21 12:55:40 UTC
svn commit: r234177 - in /cocoon: blocks/hsqldb/trunk/conf/
blocks/ojb/trunk/conf/
blocks/ojb/trunk/java/org/apache/cocoon/ojb/samples/bean/
blocks/portal/trunk/WEB-INF/xconf/
blocks/portal/trunk/java/org/apache/cocoon/portal/security/ trunk/
Author: cziegeler
Date: Sun Aug 21 03:54:05 2005
New Revision: 234177
URL: http://svn.apache.org/viewcvs?rev=234177&view=rev
Log:
Portal block: Use OJB and the HSQLDB for authentication of the portal sample.
Added:
cocoon/blocks/ojb/trunk/java/org/apache/cocoon/ojb/samples/bean/User.java (with props)
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/DBSecurityHandler.java (with props)
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/PortalUser.java (with props)
Modified:
cocoon/blocks/hsqldb/trunk/conf/cocoondb.script
cocoon/blocks/ojb/trunk/conf/repository_user.xml
cocoon/blocks/portal/trunk/WEB-INF/xconf/cocoon-portal-cowarp.xconf
cocoon/trunk/gump.xml
cocoon/trunk/status.xml
Modified: cocoon/blocks/hsqldb/trunk/conf/cocoondb.script
URL: http://svn.apache.org/viewcvs/cocoon/blocks/hsqldb/trunk/conf/cocoondb.script?rev=234177&r1=234176&r2=234177&view=diff
==============================================================================
--- cocoon/blocks/hsqldb/trunk/conf/cocoondb.script (original)
+++ cocoon/blocks/hsqldb/trunk/conf/cocoondb.script Sun Aug 21 03:54:05 2005
@@ -14,7 +14,7 @@
CREATE TABLE DEPARTMENT(ID INTEGER NOT NULL,NAME VARCHAR NOT NULL,DESCRIPTION VARCHAR NULL,UNIQUE(ID))
CREATE TABLE EMPLOYEE(ID INTEGER NOT NULL,DEPARTMENT_ID INTEGER NOT NULL,NAME VARCHAR NOT NULL,DESCRIPTION VARCHAR NULL,UNIQUE(ID))
-CREATE TABLE USER(UID INTEGER IDENTITY PRIMARY KEY,NAME VARCHAR,FIRSTNAME VARCHAR,UNAME VARCHAR,UNIQUE(UNAME))
+CREATE TABLE USER(UID INTEGER IDENTITY PRIMARY KEY,NAME VARCHAR,FIRSTNAME VARCHAR,UNAME VARCHAR,PWD VARCHAR,ROLE VARCHAR, UNIQUE(UNAME))
CREATE TABLE GROUPS(GID INTEGER IDENTITY PRIMARY KEY,GNAME VARCHAR,UNIQUE(GNAME))
CREATE TABLE USER_GROUPS(UID INTEGER,GID INTEGER,UNIQUE(UID,GID),FOREIGN KEY(UID)REFERENCES USER(UID),FOREIGN KEY(GID)REFERENCES GROUPS(GID))
CREATE TABLE STATE_TAX(CATEGORY VARCHAR NOT NULL,GROSSTAX_COLLECTED DOUBLE NOT NULL,NETTAX_COLLECTED DOUBLE NOT NULL,YEAR INTEGER NOT NULL)
@@ -25,6 +25,9 @@
CREATE TABLE CRITERION(ID BIGINT IDENTITY PRIMARY KEY,Q_ID BIGINT,C_FIELD VARCHAR,C_MATCH VARCHAR,C_TERM VARCHAR,CONSTRAINT SYS_FK_20 FOREIGN KEY(Q_ID) REFERENCES QUERY(ID),UNIQUE(ID))
CREATE USER SA PASSWORD "" ADMIN
SET WRITE_DELAY 60
+INSERT INTO USER VALUES (1, 'Mustermann', 'Max', 'guest', 'guest', 'guest')
+INSERT INTO USER VALUES (2, 'Mustermann', 'Heidi', 'cocoon', 'cocoon', 'administrator')
+INSERT INTO USER VALUES (3, 'User', 'Default', 'anonymous', 'anonymous', 'guest')
INSERT INTO DEPARTMENT VALUES(1,'Development','<span>Department producing software packages, <i>on time</i>, and <i>bug free</i>.</span>')
INSERT INTO DEPARTMENT VALUES(2,'Management','<span>Department spending all the budget on <i>meetings</i> and <i>donuts</i>.</span>')
INSERT INTO DEPARTMENT VALUES(3,'Testers','<span>Department capable of finding issues in <i>bug free</i> software packages.</span>')
Modified: cocoon/blocks/ojb/trunk/conf/repository_user.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/ojb/trunk/conf/repository_user.xml?rev=234177&r1=234176&r2=234177&view=diff
==============================================================================
--- cocoon/blocks/ojb/trunk/conf/repository_user.xml (original)
+++ cocoon/blocks/ojb/trunk/conf/repository_user.xml Sun Aug 21 03:54:05 2005
@@ -31,6 +31,16 @@
<field-descriptor name="name" column="NAME" jdbc-type="VARCHAR"/>
</class-descriptor>
+
+ <class-descriptor class="org.apache.cocoon.ojb.samples.bean.User" table="USER">
+ <field-descriptor name="uid" column="UID" jdbc-type="INTEGER" primarykey="true"/>
+ <field-descriptor name="lastname" column="NAME" jdbc-type="VARCHAR"/>
+ <field-descriptor name="firstname" column="FIRSTNAME" jdbc-type="VARCHAR"/>
+ <field-descriptor name="username" column="UNAME" jdbc-type="VARCHAR"/>
+ <field-descriptor name="password" column="PWD" jdbc-type="VARCHAR"/>
+ <field-descriptor name="role" column="ROLE" jdbc-type="VARCHAR"/>
+ </class-descriptor>
+
<!-- mappings for the QueryBean Block -->
<class-descriptor class="org.apache.cocoon.bean.query.SimpleLuceneCriterionBean" table="CRITERION">
<field-descriptor name="id" column="ID" jdbc-type="BIGINT" primarykey="true" autoincrement="true"/>
Added: cocoon/blocks/ojb/trunk/java/org/apache/cocoon/ojb/samples/bean/User.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/ojb/trunk/java/org/apache/cocoon/ojb/samples/bean/User.java?rev=234177&view=auto
==============================================================================
--- cocoon/blocks/ojb/trunk/java/org/apache/cocoon/ojb/samples/bean/User.java (added)
+++ cocoon/blocks/ojb/trunk/java/org/apache/cocoon/ojb/samples/bean/User.java Sun Aug 21 03:54:05 2005
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.ojb.samples.bean;
+
+/**
+ * @version $Id:$
+ */
+public class User {
+
+ private int uid;
+ private String lastname;
+ private String firstname;
+ private String username;
+ private String password;
+ private String role;
+
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getRole() {
+ return role;
+ }
+
+ public void setRole(String role) {
+ this.role = role;
+ }
+
+ public int getUid() {
+ return uid;
+ }
+
+ public void setUid(int uid) {
+ this.uid = uid;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+}
Propchange: cocoon/blocks/ojb/trunk/java/org/apache/cocoon/ojb/samples/bean/User.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/blocks/ojb/trunk/java/org/apache/cocoon/ojb/samples/bean/User.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/blocks/portal/trunk/WEB-INF/xconf/cocoon-portal-cowarp.xconf
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/WEB-INF/xconf/cocoon-portal-cowarp.xconf?rev=234177&r1=234176&r2=234177&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/WEB-INF/xconf/cocoon-portal-cowarp.xconf (original)
+++ cocoon/blocks/portal/trunk/WEB-INF/xconf/cocoon-portal-cowarp.xconf Sun Aug 21 03:54:05 2005
@@ -16,15 +16,20 @@
-->
<!--+
|
- | SVN $Id:$
+ | SVN $Id$
+-->
<components>
<component role="org.osoco.cowarp.ApplicationManager"
class="org.osoco.cowarp.impl.StandardApplicationManager"/>
+ <!-- This security handler uses OJB and the hsqldb for the authentication: -->
<component role="org.osoco.cowarp.SecurityHandler/portal"
- class="org.osoco.cowarp.impl.PipelineSecurityHandler">
- <authentication-resource>cocoon:raw:/sunrise-authuser</authentication-resource>
- </component>
+ class="org.apache.cocoon.portal.security.DBSecurityHandler"/>
+ <!-- If you want to use a pipeline for the authentication use this configuration:
+ <component role="org.osoco.cowarp.SecurityHandler/portal"
+ class="org.osoco.cowarp.impl.PipelineSecurityHandler">
+ <authentication-resource>cocoon:raw:/sunrise-authuser</authentication-resource>
+ </component>
+ -->
<component role="org.osoco.cowarp.Application/portal"
class="org.osoco.cowarp.portal.StandardPortalApplication"
security-handler="portal">
Added: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/DBSecurityHandler.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/DBSecurityHandler.java?rev=234177&view=auto
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/DBSecurityHandler.java (added)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/DBSecurityHandler.java Sun Aug 21 03:54:05 2005
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.portal.security;
+
+import java.util.Collection;
+import java.util.Map;
+
+import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.cocoon.ojb.samples.bean.User;
+import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.broker.PersistenceBrokerFactory;
+import org.apache.ojb.broker.query.Criteria;
+import org.apache.ojb.broker.query.Query;
+import org.apache.ojb.broker.query.QueryByCriteria;
+import org.osoco.cowarp.AbstractSecurityHandler;
+import org.osoco.cowarp.ApplicationManager;
+
+/**
+ * @version $Id:$
+ */
+public class DBSecurityHandler
+ extends AbstractSecurityHandler {
+
+ /**
+ * @see org.osoco.cowarp.SecurityHandler#login(Map)
+ */
+ public org.osoco.cowarp.User login(Map loginContext) throws Exception {
+ PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();
+
+ try {
+ Parameters para = (Parameters) loginContext.get(ApplicationManager.LOGIN_CONTEXT_PARAMETERS_KEY);
+
+ final Criteria criteria = new Criteria();
+ criteria.addEqualTo("username", para.getParameter("name"));
+ criteria.addEqualTo("password", para.getParameter("password"));
+ final Query query = new QueryByCriteria(User.class, criteria);
+ final Collection c = broker.getCollectionByQuery(query);
+
+ if ( c.size() == 1 ) {
+ User u = (User)c.iterator().next();
+ PortalUser pUser = new PortalUser(u.getUsername());
+ pUser.setUid(u.getUid());
+ pUser.setFirstname(u.getFirstname());
+ pUser.setLastname(u.getLastname());
+ pUser.setPassword(u.getPassword());
+ pUser.setRole(u.getRole());
+ if ( this.getLogger().isInfoEnabled() ) {
+ this.getLogger().info("Loggedin as: " + u.getFirstname() + " " + u.getLastname() + " (" + u.getUsername() + " " + u.getRole() +")");
+ }
+ return pUser;
+ }
+ } finally {
+ broker.close();
+ }
+ return null;
+ }
+
+ /**
+ * @see org.osoco.cowarp.SecurityHandler#logout(Map, org.osoco.cowarp.User)
+ */
+ public void logout(Map context, org.osoco.cowarp.User user) {
+ // nothing to do
+ }
+}
Propchange: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/DBSecurityHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/DBSecurityHandler.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/PortalUser.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/PortalUser.java?rev=234177&view=auto
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/PortalUser.java (added)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/PortalUser.java Sun Aug 21 03:54:05 2005
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.portal.security;
+
+import java.util.ArrayList;
+
+import org.osoco.cowarp.StandardUser;
+
+/**
+ * @version $Id:$
+ */
+public class PortalUser extends StandardUser {
+
+ private int uid;
+ private String lastname;
+ private String firstname;
+ private String password;
+
+ public PortalUser(String uid) {
+ super(uid);
+ this.roles = new ArrayList();
+ }
+
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public void setFirstname(String firstname) {
+ this.firstname = firstname;
+ }
+
+ public String getLastname() {
+ return lastname;
+ }
+
+ public void setLastname(String lastname) {
+ this.lastname = lastname;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getRole() {
+ return (String) roles.get(0);
+ }
+
+ public void setRole(String role) {
+ this.roles.clear();
+ this.roles.add(role);
+ }
+
+ public int getUid() {
+ return uid;
+ }
+
+ public void setUid(int uid) {
+ this.uid = uid;
+ }
+
+ public String getUsername() {
+ return id;
+ }
+
+ public void setUsername(String username) {
+ this.id = username;
+ }
+
+}
Propchange: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/PortalUser.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/security/PortalUser.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/trunk/gump.xml
URL: http://svn.apache.org/viewcvs/cocoon/trunk/gump.xml?rev=234177&r1=234176&r2=234177&view=diff
==============================================================================
--- cocoon/trunk/gump.xml (original)
+++ cocoon/trunk/gump.xml Sun Aug 21 03:54:05 2005
@@ -919,6 +919,7 @@
<depend project="cocoon-block-authentication-fw"/>
<depend project="cocoon-block-forms"/>
<depend project="cocoon-block-cron"/>
+ <depend project="cocoon-block-ojb"/>
<depend project="cocoon-block-template" type="samples"/>
<depend project="jtidy"/>
<depend project="castor"/>
Modified: cocoon/trunk/status.xml
URL: http://svn.apache.org/viewcvs/cocoon/trunk/status.xml?rev=234177&r1=234176&r2=234177&view=diff
==============================================================================
--- cocoon/trunk/status.xml (original)
+++ cocoon/trunk/status.xml Sun Aug 21 03:54:05 2005
@@ -530,7 +530,10 @@
</action>
</release>
<release version="2.1.8" date="TBD">
- <action dev="VG" type="update">
+ <action dev="CZ" type="add" fixes-bug="36240" due-to="Jens Maukisch" due-to-email="jmaukisch@s-und-n.de">
+ Portal block: Use OJB and the HSQLDB for authentication of the portal sample.
+ </action>
+ <action dev="VG" type="update">
Faces block: Updated MyFaces libraries to the SVN r233484, get rid of patched
version.
</action>