Sakai 1.5.0

Customizing QuickStart

Sakai Installation

Sakai Download

Sakai Documentation

Developing with Sakai

Pre-Requisites: Successful QuickStart Installation

Before customizing your QuickStart distribution, it should have installed and ran successfully as a QuickStart installation. This discussion assumes a fully operational QuickStart.

The Sakai QuickStart distribution will run with a default configuration right out of the box. There are some simple customizations that can be made to tailor the system to local needs. 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 QuickStart distribution it is found in the sakai/localfiles 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.

Sakai skins are composed of a set of css and image files that define the standard variables Sakai uses in its layout templates. Default and sample skins are provided in the sakai-portal/webapps/css/portalskins directory. A new skin can be created by copying and modifying one of these skins. The information for branding and appearance of the title and navigation sections of the screen are under the portalskin directory. The appearance of the context provided by Sakai tools is controlled by a css file (with the same skin name) at the same level as the portalskin directory. Note that to create a new skin you should copy one of the directories in portalskins AND make a copy of the corresponding css file which appears at the same directory level as the portalskin directory.

By default the files for a skin are found in the sakai-portal/webapps/css directory. The directory searched can be changed by modifying the property 'skin.root' in the file. The default skin is set by the property 'skin.default'. (The image directory that is a sibling to the css directory contains some images considered to not be skin specific. Any change in these images will appear in all skins.)

Some of the skins distributed with Sakai demonstrate a method for site specific customization of an existing skin. For these skins the customization takes the form of inserting an extra image called a 'pig'. This image can be used, for example, to add the display of the logo of a specific department in a university to a common university skin.

The general Sakai skin is in sakai_core. The 'gen-u' set of skins illustrate how to create a skin and then create some further customized 'pig' variant skins. The 'unbrand-u' skin is an example of a skin tailored for customization.

For each Sakai site the skin to be used for that site can be specified on the site administration page. The value expected in the site specification field is the name of the skin with a .css extension.

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.