Name

Application Launchpad

Version

0.9.1

Product Versions

Crowd 1.0.6

Author

Brad Harvey

Homepage

 

Price

Free

License

BSD

JavaDocs

 

IssueTracking

 

Download JAR

ApplicationLaunchpadServlet-0.9.1.war

Download Source

ApplicationLaunchpad-0.9.1-src.zip

This application is deprecated. Crowd now bundles a demo application, and the JAAS login module no longer supports acegi. It could be updated, but I don't think there's much value in doing so.

View and login to your Crowd enabled applications from the Application Launchpad, and change your password.

Description/Features

The launchpad supports single sign on with other Crowd single sign on enabled applications. After logging in, you are shown all the applications you can access along with what groups you have for each application.

Users can also change their own password.

Usage

Step 1. Login

Step 2. View Applications

The launchpad will display all applications for which you have the required groups. If there is a URL in the description field for the application in Crowd, the application name will be a link that you can click on to launch the application.

Step 3. Launch!

Click on an application name to go straight there. If it supports single sign on, you'll already be logged in.

Change Password

Users can also change their own password via the Change Password link in the header.

Installation, Setup and Requirements

Prerequisites

The Application Launchpad is a standalone war file - you'll need a servlet engine to run it in. It also requires Java 1.5.

In the interests of eating my own dogfood, the launchpad uses the Crowd JAAS Login Module. If your servlet engine has its own JAAS configuration mechanism this may mean some additional setup steps.

Launchpad Installation & Configuration

Quick Start

To get up and running quickly to test without changing from the default properties:

  • Install Crowd with out of the box defaults.
  • Create an application in crowd called launchpad, and the password should be launchpad.
  • The directories for launchpad should be set to 'allow all to authenticate'.
  • Create a principal called launchpad with password launchpad.
  • Install a fresh tomcat 5.5 to host the application launchpad. This will help prevent xml library conflicts.

1. Add an Application in Crowd for the Application Launchpad

See Adding an Application for more detailed instructions.

Add an application named launchpad.

Click the 'Directories' tab and change 'Allow all to authenticate' to 'True' (the default is 'False'). This way we don't need specific Groups for the launchpad.

2. Add a Principal in Crowd for the Application Launchpad

The launchpad needs to access the Crowd Administration console as a normal user to get information about the configured applications (the SOAP API does not support this).

See Adding a User. Create a principal called launchpad and give it the crowd-administrators group. Test that you can login to Crowd normally with this user.

3. Setup applications in Crowd to appear in the Launchpad

Launchpad checks the groups a user has against the groups configured for an application. It won't display applications that use 'Allow all to authenticate' (like launchpad itself).

If you want a link to appear in the launchpad for an application, add it to the description field of the Application in Crowd.

Application Details Cached

Please note that the launchpad caches the application information it retrieves from crowd (for 500 seconds by default - see launchpad.properties).

4. Review Properties

Inside the war WEB-INF/classes there are two properties files of interest - crowd.properties and launchpad.properties. Edit crowd.properties to change the Application connection details from step 1, and launchpad.properties to change the Principal connection properties from step 2.

crowd.properties
application.name=launchpad 
application.password=launchpad 
crowd.server.url=http://localhost:8095/crowd/services/

session.lastvalidation=session.lastvalidation
session.isauthenticated=session.isauthenticated
session.tokenkey=session.tokenkey
session.validationinterval=0
launchpad.properties
#
# Launchpad properties.  Defaults are listed below, uncomment to modify.
#

# User/Pass of a user that can login to crowd admin console (crowd-administrators)
# crowd.userName=launchpad
# crowd.password=launchpad

# URL to crowd admin console (without the /crowd/console)
# crowd.baseUrl=http://localhost:8095

# Loading the application list is slow, so don't reload more frequently than
# this many seconds.
# applications.cache.expirySeconds=500

# security domain for JAAS Login
# loginContextName=crowd

# JAAS login config file
# loginConfig=/WEB-INF/login.conf


5. Alternate JAAS Configuration for some Containers (like JBoss)

If your container already uses JAAS, you will need to install the Crowd JAAS login module dependencies where the container can see them. In JBoss, this is server/lib.

You may also find that /WEB-INF/login.conf isn't used. For example in JBoss add the following to login-config.xml instead.

JBoss login-config.xml snippet
   <application-policy name = "crowd">
       <authentication>
          <login-module code="com.atlassian.crowd.application.jaas.CrowdLoginModule"
             flag = "required">
           <module-option name="application.name">launchpad</module-option>
           <module-option name="application.password">launchpad</module-option>
           <module-option name="crowd.server.url">http://localhost:8095/crowd/services/</module-option>
           <module-option name="session.isauthenticated">session.isauthenticated</module-option>
           <module-option name="session.tokenkey">session.tokenkey</module-option>
           <module-option name="session.validationinterval">0</module-option>
           <module-option name="session.lastvalidation">session.lastvalidation</module-option>
          </login-module>
       </authentication>
    </application-policy>

6. Install the war

For tomcat, I extracted the webapp into a launchpad subdirectory under the tomcat home directory, and created a context like this:

conf/Catalina/localhost/launchpad.xml
<Context path="/launchpad" docBase="${catalina.home}/launchpad"/>

I was then able to login at http://localhost:8080/launchpad.

Version History

Version

Release Date

Description

0.9.1

May 12, 2007

Add change password function

0.9

May 7, 2007

Initial Release

Building from Source

This project uses maven2. I use the maven2 plugin for eclipse - http://m2eclipse.codehaus.org/.

Some dependencies need to be installed manually. Get Crowd JAAS Login Module and install with the following command:

mvn install:install-file -DgroupId=com.atlassian.crowd.application -DartifactId=CrowdJaasLoginModule -Dversion=0.9.2 -Dpackaging=jar -Dfile=CrowdJaasLoginModule-0.9.2.jar

You may need to add crowd-core to your local repository. Change to the $CROWD_INSTALL/client directory and execute this command:

mvn install:install-file -DgroupId=com.atlassian.crowd -DartifactId=crowd-core -Dversion=1.0.6 -Dpackaging=jar -Dfile=crowd-core-1.0.6.jar

All other dependencies should be in the public maven repo.

Screenshots