Sakai 1.5.1

Customizing QuickProd


Sakai Installation

Sakai Download

Sakai Documentation

Developing with Sakai

Pre-Requisites: Successful QuickDemo Installation

Before customizing your Sakai distribution, you should have installed and successfully run a QuickDemo installation.

The Sakai QuickDemo distribution will run with a default configuration right out of the box. Most installations will wish to have simple customizations that can be made to tailor the system to local needs. The QuickProd distribution is designed to make this straightforward. This page provides a brief introduction to how to provide customizations related to the look and branding of Sakai and to modifying the source of user account information. To ask questions or to share knowledge you gained from experience please use the resources at
Customizing the look of Sakai
The file can be used to change the default behavior of several aspects of Sakai. For the QuickProd distribution it is found in the directory holding the rest of files that usually go in the /usr/local/sakai directory. Among the things that are trivial to customize in are:
  • the name and url of the server,
  • the name and version number given to this service,
  • the name and url of the institution running this instance of the service,
  • the set of navigation links displayed on the bottom of each page.

Additional control over the look and branding of Sakai can be achieved by using a skin to display the local look for this Sakai installation. Skins can be used to specify the standard overall look for the system and, since the skin used for a site is an attribute of the site definition, the look for any individual site within Sakai can be further customized. For more information on how to build Sakai skins look at the Sakai 1.5.1 skinning manual.

User Information
To obtain user specific information (e.g. user id, name, email) Sakai requires a module implementing the org.sakaiproject.service.legacy.user.UserDirectoryProvider interface. A sample implementation is provided with Sakai in the sakai-provider webapp directory. Each installation will want to provide an installation that fills their local needs. To integrate a locally developed UserDirectoryProvider implementation the file tomcat/webapps/sakai-provider/WEB-INF/components.xml should be updated to refer to the local implementation class.
Authentication and Single Sign On
Sakai can be configured to either directly query a user-supplied authentication method or to respect container authentication. The UserDirectoryProvider interface provides an 'authenticateUser' method to allow for customized authentication. If the property 'container.auth' in the file is set to true then Sakai will examine the value of REMOTE_USER to determine if the user is logged in. If this contains a value then the user is considered to be logged in. The details of how to perform container authentication are very variable and must be resolved on an installation by installation basis. The use of container authentication is one approach to permitting Single Sign On.
Integrating Course Lists and Roles
Sakai provides two plug-ins while allow you to configure Sakai to use your enterprise information to determine courses, instructors, and students:
  • You can provide Sakai with lists of courses and attributes of courses by writing a CourseManagementProvider as documented in org.sakaiproject.service.legacy.coursemanagement. There are several sample implementations of this provider provided in the distribution.
  • You can populate the roles in the Sakai system by writing a RealmProvider as documented in org.sakaiproject.service.legacy.realm. There are several sample implementations provided in the distribution.
These provide the basic ability to populate courses and roles for your Sakai installation. In later versions of Sakai, these plug-ins will be expanded and improved.