You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-user@jakarta.apache.org by Tom Keeney <to...@novuscg.com> on 2002/08/22 17:38:38 UTC

Slide - Jetspeed User/Group Administration Integration

Hello All,

First of all, I want to apologize for the cross posting, but I thought this was appropriate for both groups.

I thought it'd be a good idea to present some of my work to the community since I have relied on you quite often to resolve problems using Jakarta products.  First a little background.  My group has been developing a Content Management/Presentation System using various Jakarta Technologies for about a year now.    We use Jetspeed 1.3a2 as our presentation framework and have integrated pieces of Lucene for search capabilities and Slide 1.0.16 for secure content storage.  Of course, we use Apache and Tomcat to serve it up!  

This email will focus on my work integrating User Administration in Jetspeed and Slide.  Our software requires both Jetspeed (Turbine) and Slide authentication, since we have security around the Jetspeed portal and we have Slide security when linking to our document repository from with the portal.  I have developed a hook into Slide user administration from within Jetspeed by extending the JetspeedDBSecurityService and implementing Slide code.  You can find the src and properties in the attached archive.

Please note the following regarding the attached source:

1)  The com.novuscg.util.slide package contains my wrapper around the Slide user/group administration code.  You will note that the SlideNode, SlideUser, and SlideGroup classes represent a strategy pattern that provide the core code for creating, updating, and deleting users and groups.  Note that the SlideGroup class which manages Slide groups has been stubbed out but not fully implemented.  The SlideUser class is fully implemented though.  The SlideClient and it's impl perform the Slide Domain initialization to retrieve the NamespaceAccessToken.  The Administrator and it's impl do the actual administration from within a transactional context.

2)  The com.novuscg.portal.services.security.NovusJetspeedDBSecurityService represents my implementation of the Jetspeed Security Service and implements the code described in 1) to perform Slide User administration along with the normal Jetspeed User Administration.  For those of you familiar with Jetspeed, if you login as admin and create a user through the "User Browser" portlet, you will be administering a Slide User in addition to the Jetspeed User.

3)  The source relies on special properties settings.  See the attached properties file.  Note that you must replace the existing JetspeedDBSecurityService  with the NovusJetspeedDBSecurityService.

This user administration synchronization is necessary since I'm using Slide to store documents uploaded through the Jetspeed portal.  The cool thing is that I'm using the Turbine Upload Service to grab the FileInputStream and I pass it to Slide through the WebDAV client provided with Slide.  That's another topic in itself though.

This is important if you want this code to work!  When I first implemented this code I faced the problem that I couldn't hook directly into the Domain instantiated by Slide to grab the NamespaceAccessToken using the Jetspeed portal (The attached src lives in my Jetspeed Web App src directory).  I solved this problem by forcing Slide class loading from the CATALINA_HOME/common/lib directory.  In short, you have to do the following modifications to Slide to get this code to work:

1) Remove slide-kernel.jar, slide-roles.jar, and slide-stores.jar from the slide.war and slide/lib/ directory.
2) If you have included slide-kernel.jar, slide-roles.jar, and slide-stores.jar in your Web-App lib directory so you can compile the attached classes, then you must remove them as well before deploying.
3) Make sure the slide-kernel.jar, slide-roles.jar, and slide-stores.jar exist in the CATALINA_HOME/common/lib/ directory.
4) There is a conflict between the jta_spec_1_0_1.jar distributed with Tomcat and the jta.jar distributed with Slide.  Make sure jta_spec_1_0_1.jar and jdbc2_0-stdext.jar is removed from the CATALINA_HOME/common/lib/ directory.

Voila!  It should work!

If you have any questions or comments, just let me know.  This is typical of the kind of work we do, so if you need us to implement some stuff, let me know!

Regards,

Tom Keeney
Novus Consulting Group
 

R: Slide - Jetspeed User/Group Administration Integration

Posted by Dariush Behboudi <da...@glamm.com>.
Hi tom,
thanks for your contribution, I'll try it asap.

Did you ever tested on Jetspeed1.4?

Dariush.

-----Messaggio originale-----
Da: Tom Keeney [mailto:tom.keeney@novuscg.com] 
Inviato: giovedì 22 agosto 2002 17.39
A: jetspeed-user@jakarta.apache.org; slide-user@jakarta.apache.org
Oggetto: Slide - Jetspeed User/Group Administration Integration

Hello All,

First of all, I want to apologize for the cross posting, but I thought
this was appropriate for both groups.

I thought it'd be a good idea to present some of my work to the
community since I have relied on you quite often to resolve problems
using Jakarta products.  First a little background.  My group has been
developing a Content Management/Presentation System using various
Jakarta Technologies for about a year now.    We use Jetspeed 1.3a2 as
our presentation framework and have integrated pieces of Lucene for
search capabilities and Slide 1.0.16 for secure content storage.  Of
course, we use Apache and Tomcat to serve it up!  

This email will focus on my work integrating User Administration in
Jetspeed and Slide.  Our software requires both Jetspeed (Turbine) and
Slide authentication, since we have security around the Jetspeed portal
and we have Slide security when linking to our document repository from
with the portal.  I have developed a hook into Slide user administration
from within Jetspeed by extending the JetspeedDBSecurityService and
implementing Slide code.  You can find the src and properties in the
attached archive.

Please note the following regarding the attached source:

1)  The com.novuscg.util.slide package contains my wrapper around the
Slide user/group administration code.  You will note that the SlideNode,
SlideUser, and SlideGroup classes represent a strategy pattern that
provide the core code for creating, updating, and deleting users and
groups.  Note that the SlideGroup class which manages Slide groups has
been stubbed out but not fully implemented.  The SlideUser class is
fully implemented though.  The SlideClient and it's impl perform the
Slide Domain initialization to retrieve the NamespaceAccessToken.  The
Administrator and it's impl do the actual administration from within a
transactional context.

2)  The
com.novuscg.portal.services.security.NovusJetspeedDBSecurityService
represents my implementation of the Jetspeed Security Service and
implements the code described in 1) to perform Slide User administration
along with the normal Jetspeed User Administration.  For those of you
familiar with Jetspeed, if you login as admin and create a user through
the "User Browser" portlet, you will be administering a Slide User in
addition to the Jetspeed User.

3)  The source relies on special properties settings.  See the attached
properties file.  Note that you must replace the existing
JetspeedDBSecurityService  with the NovusJetspeedDBSecurityService.

This user administration synchronization is necessary since I'm using
Slide to store documents uploaded through the Jetspeed portal.  The cool
thing is that I'm using the Turbine Upload Service to grab the
FileInputStream and I pass it to Slide through the WebDAV client
provided with Slide.  That's another topic in itself though.

This is important if you want this code to work!  When I first
implemented this code I faced the problem that I couldn't hook directly
into the Domain instantiated by Slide to grab the NamespaceAccessToken
using the Jetspeed portal (The attached src lives in my Jetspeed Web App
src directory).  I solved this problem by forcing Slide class loading
from the CATALINA_HOME/common/lib directory.  In short, you have to do
the following modifications to Slide to get this code to work:

1) Remove slide-kernel.jar, slide-roles.jar, and slide-stores.jar from
the slide.war and slide/lib/ directory.
2) If you have included slide-kernel.jar, slide-roles.jar, and
slide-stores.jar in your Web-App lib directory so you can compile the
attached classes, then you must remove them as well before deploying.
3) Make sure the slide-kernel.jar, slide-roles.jar, and slide-stores.jar
exist in the CATALINA_HOME/common/lib/ directory.
4) There is a conflict between the jta_spec_1_0_1.jar distributed with
Tomcat and the jta.jar distributed with Slide.  Make sure
jta_spec_1_0_1.jar and jdbc2_0-stdext.jar is removed from the
CATALINA_HOME/common/lib/ directory.

Voila!  It should work!

If you have any questions or comments, just let me know.  This is
typical of the kind of work we do, so if you need us to implement some
stuff, let me know!

Regards,

Tom Keeney
Novus Consulting Group
 



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>