July

  • : Function ereg() is deprecated in /homepages/26/d126321691/htdocs/latenightpc.com/includes/file.inc on line 893.
  • : Function ereg() is deprecated in /homepages/26/d126321691/htdocs/latenightpc.com/includes/file.inc on line 893.
  • : Function ereg() is deprecated in /homepages/26/d126321691/htdocs/latenightpc.com/includes/file.inc on line 893.
  • strict warning: Non-static method view::load() should not be called statically in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/views.module on line 823.
  • strict warning: Declaration of views_plugin_display::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/plugins/views_plugin_display.inc on line 1684.
  • strict warning: Declaration of views_plugin_display::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/plugins/views_plugin_display.inc on line 1684.
  • strict warning: Declaration of views_handler_argument::init() should be compatible with views_handler::init(&$view, $options) in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/handlers/views_handler_argument.inc on line 699.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/handlers/views_handler_filter.inc on line 584.
  • strict warning: Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/handlers/views_handler_filter.inc on line 584.
  • strict warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/modules/node/views_handler_argument_dates_various.inc on line 104.
  • strict warning: Declaration of views_plugin_style_default::options() should be compatible with views_object::options() in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/plugins/views_plugin_style_default.inc on line 25.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/plugins/views_plugin_row.inc on line 61.
  • strict warning: Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/plugins/views_plugin_row.inc on line 61.
  • strict warning: Non-static method GalleryDataCache::put() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/embed.php on line 32.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 85.
  • : Assigning the return value of new by reference is deprecated in /homepages/26/d126321691/htdocs/g2svn/gallery2/bootstrap.inc on line 43.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/Gallery.class on line 915.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryDataCache::get() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/Gallery.class on line 915.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 186.
  • : Assigning the return value of new by reference is deprecated in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 854.
  • strict warning: Non-static method GalleryEmbed::getEmbedPathByHttpRequest() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/embed.php on line 36.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/Gallery.class on line 972.
  • strict warning: Non-static method GalleryUtilities::getRequestVariablesNoPrefix() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryEmbed.class on line 1092.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 289.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 874.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 878.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 293.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryEmbed::init() should not be called statically in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/gallery/gallery_base.inc on line 131.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryEmbed.class on line 94.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 42.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 43.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 44.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 45.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryModule.class on line 21.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 51.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryPlatform/UnixPlatform.class on line 21.
  • strict warning: Non-static method GalleryUtilities::isEmbedded() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/rewrite/classes/parsers/modrewrite/ModRewriteUrlGenerator.class on line 38.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/Gallery.class on line 915.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryDataCache::get() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/Gallery.class on line 915.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 186.
  • strict warning: Non-static method GalleryCoreApi::getPluginParameter() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/rewrite/classes/parsers/modrewrite/ModRewriteUrlGenerator.class on line 40.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 299.
  • strict warning: Non-static method GalleryPluginHelper_simple::getParameter() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 301.
  • strict warning: Non-static method GalleryPluginHelper_simple::_fetchAllParameters() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 221.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 281.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryDataCache::getFromDisk() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 286.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 273.
  • strict warning: Non-static method GalleryDataCache::getCachePath() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 280.
  • strict warning: Non-static method GalleryDataCache::getCacheTuple() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 438.
  • strict warning: Non-static method GalleryDataCache::put() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 290.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 85.
  • strict warning: Non-static method GalleryUtilities::getServerVar() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUrlGenerator.class on line 357.
  • strict warning: Non-static method GalleryUtilities::getServerVar() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUrlGenerator.class on line 358.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 1407.
  • strict warning: Non-static method GalleryUtilities::getServerVar() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUrlGenerator.class on line 369.
  • strict warning: Non-static method GalleryUtilities::getServerVar() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUrlGenerator.class on line 369.
  • strict warning: Non-static method GalleryUtilities::isEmbedded() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUrlGenerator.class on line 381.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/Gallery.class on line 915.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryDataCache::get() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/Gallery.class on line 915.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 186.
  • strict warning: Non-static method GalleryCoreApi::getPluginParameter() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUrlGenerator.class on line 383.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 299.
  • strict warning: Non-static method GalleryPluginHelper_simple::getParameter() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 301.
  • strict warning: Non-static method GalleryPluginHelper_simple::_fetchAllParameters() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 221.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 281.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryDataCache::getFromDisk() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 286.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 273.
  • strict warning: Non-static method GalleryDataCache::getCachePath() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 280.
  • strict warning: Non-static method GalleryDataCache::getCacheTuple() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 438.
  • strict warning: Non-static method GalleryDataCache::put() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 290.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 85.
  • strict warning: Non-static method GalleryCoreApi::getPluginParameter() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/rewrite/classes/RewriteUrlGenerator.class on line 73.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 299.
  • strict warning: Non-static method GalleryPluginHelper_simple::getParameter() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 301.
  • strict warning: Non-static method GalleryPluginHelper_simple::_fetchAllParameters() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 221.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 281.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryDataCache::get() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 282.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 186.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/Gallery.class on line 284.
  • strict warning: Non-static method GalleryUtilities::getRequestVariables() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GallerySession.class on line 200.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 241.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 874.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 878.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 246.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryUtilities::identifySearchEngine() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GallerySession.class on line 213.
  • strict warning: Non-static method GalleryUtilities::strToLower() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GallerySession.class on line 228.
  • strict warning: Non-static method GalleryUtilities::getServerVar() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GallerySession.class on line 1266.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 1407.
  • strict warning: Non-static method GalleryUtilities::getRemoteHostAddress() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GallerySession.class on line 1267.
  • strict warning: Non-static method GalleryUtilities::isTrustedProxy() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 1007.
  • strict warning: Non-static method GalleryUtilities::getRequestVariables() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 146.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 242.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 874.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 878.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 246.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 148.
  • strict warning: Non-static method GalleryTranslator::getSupportedLanguageCode() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 150.
  • strict warning: Non-static method GalleryTranslator::getLanguageData() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryTranslator.class on line 414.
  • strict warning: Non-static method GalleryUtilities::strToUpper() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryTranslator.class on line 418.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/Gallery.class on line 531.
  • strict warning: Non-static method GalleryUtilities::strToUpper() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryTranslator.class on line 418.
  • strict warning: Non-static method GalleryDataCache::put() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryEmbed.class on line 103.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 85.
  • strict warning: Non-static method GalleryEmbed::isCompatibleWithEmbedApi() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryEmbed.class on line 107.
  • strict warning: Non-static method GalleryEmbed::getApiVersion() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryEmbed.class on line 61.
  • strict warning: Non-static method GalleryUtilities::isCompatibleWithApi() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryEmbed.class on line 61.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryEmbed.class on line 128.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryUtilities::getAllRequestVariables() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/rewrite/classes/RewriteUrlGenerator.class on line 91.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 274.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/rewrite/classes/RewriteUrlGenerator.class on line 101.
  • strict warning: call_user_func() expects parameter 1 to be a valid callback, non-static method RewriteSimpleHelper::loadItemIdFromPath() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/rewrite/classes/RewriteUrlGenerator.class on line 103.
  • strict warning: Non-static method GalleryUtilities::getRequestVariables() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/rewrite/classes/RewriteSimpleHelper.class on line 38.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 242.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 874.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 878.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 242.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 874.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 878.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 246.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryUtilities::getRequestVariables() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUrlGenerator.class on line 794.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 241.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 874.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 878.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 246.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryUtilities::getRequestVariables() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUrlGenerator.class on line 794.
  • strict warning: Non-static method GalleryUtilities::_getRequestVariable() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 241.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 874.
  • strict warning: Non-static method GalleryUtilities::_internalGetRequestVariable() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 878.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 246.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 708.
  • strict warning: Non-static method GalleryUtilities::sanitizeInputValues() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUtilities.class on line 714.
  • strict warning: Non-static method GalleryCoreApi::getAllFactoryImplementationIds() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 175.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 187.
  • strict warning: Non-static method GalleryFactoryHelper_simple::getAllImplementationIds() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 188.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getFactoryData() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 213.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getSingleton() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 63.
  • strict warning: Non-static method GalleryCoreApi::newFactoryInstanceById() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 182.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 174.
  • strict warning: Non-static method GalleryFactoryHelper_simple::newInstanceById() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 175.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getFactoryData() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 191.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getSingleton() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 63.
  • strict warning: Non-static method GalleryFactoryHelper_simple::newInstance() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 201.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getFactoryData() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 141.
  • strict warning: Non-static method GalleryFactoryHelper_simple::_getSingleton() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryFactoryHelper_simple.class on line 63.
  • strict warning: Non-static method GalleryCoreApi::getAnonymousUserId() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 199.
  • strict warning: Non-static method GalleryCoreApi::getPluginParameter() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 3078.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 300.
  • strict warning: Non-static method GalleryPluginHelper_simple::getParameter() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 302.
  • strict warning: Non-static method GalleryPluginHelper_simple::_fetchAllParameters() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 222.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 281.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryDataCache::get() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryPluginHelper_simple.class on line 282.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 186.
  • strict warning: Non-static method GalleryCoreApi::loadEntitiesById() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/init.inc on line 204.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 2360.
  • strict warning: Non-static method GalleryEntityHelper_simple::loadEntitiesById() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 2361.
  • strict warning: Non-static method GalleryDataCache::containsKey() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryEntityHelper_simple.class on line 53.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 203.
  • strict warning: Non-static method GalleryDataCache::getFromDisk() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryEntityHelper_simple.class on line 56.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 273.
  • strict warning: Non-static method GalleryDataCache::getCachePath() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 280.
  • strict warning: Non-static method GalleryDataCache::getCacheTuple() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 405.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 287.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUser.class on line 21.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryEntity.class on line 21.
  • strict warning: Declaration of GalleryUser::create() should be compatible with GalleryEntity::create() in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUser.class on line 42.
  • strict warning: Declaration of GalleryUser::save() should be compatible with GalleryEntity::save($postEvent = true, $setAclId = NULL) in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryUser.class on line 42.
  • strict warning: Non-static method GalleryDataCache::put() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryEntityHelper_simple.class on line 95.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 85.
  • strict warning: Non-static method GalleryUtilities::isA() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/helpers/GalleryEntityHelper_simple.class on line 118.
  • strict warning: Non-static method GalleryDataCache::put() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryEmbed.class on line 133.
  • strict warning: Non-static method GalleryDataCache::_getCache() should not be called statically in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryDataCache.class on line 85.
  • strict warning: Non-static method GalleryCoreApi::getMapEntry() should not be called statically in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/gallery/gallery_user.inc on line 616.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/Gallery.class on line 419.
  • : Assigning the return value of new by reference is deprecated in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryStorage.class on line 290.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryStorage.class on line 30.
  • warning: mysql_connect(): Unknown MySQL server host 'db251.perfora.net' (1) in /homepages/26/d126321691/htdocs/g2svn/gallery2/lib/adodb/drivers/adodb-mysql.inc.php on line 365.
  • strict warning: Non-static method GalleryCoreApi::error() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryStorage.class on line 239.
  • strict warning: Non-static method GalleryCoreApi::requireOnce() should not be called statically, assuming $this from incompatible context in /homepages/26/d126321691/htdocs/g2svn/gallery2/modules/core/classes/GalleryCoreApi.class on line 2861.
  • strict warning: Non-static method view::load() should not be called statically in /homepages/26/d126321691/htdocs/latenightpc.com/sites/all/modules/views/views.module on line 823.

SSO Web Applications

Corporate Websites and Middleware

Websites have come a long way from when everyone just had to have a presence to the point now where every large organization has not only many internal sites but also uses web-based applications for critical internal functions. These internal applications include time-keeping, expense reporting, document approval chains, personnel management, and numerous industry-specific tools for meeting the day-to-day needs of the business. Just like traditional desktop middleware, these web applications all need to consider the security of the data that the user accesses. There are many security considerations but one that most applications share is the simple act of logging on. Traditional desktop applications simply save off the users credentials at login and refresh the credentials with each new session.

Sessions and Web Applications

Since web pages are stateless, each web application has to simulate statefulness by using sessions. Sessions are used with a website to remember information about a user as they travel from page to page and as the different user requests are received and responses are sent. Sessions are generally maintained by setting a cookie in the visitor's browser. In subsequent requests, the user sends the value of that cookie. The value is simply a unique identifier that lets the web server look up the stored session variables to use. Generally each web application that someone uses will set it's own cookie and store it's own independent values. When sessions are done well a web-based application can have the same coherent and responsive behaviour as an installed desktop application. Single Sign-On can be built in to an application in the same way that statefulness has been. Simply put, a cookie can be set for all applications within a domain (this is a limit of cookies) which lets the application identify the user. This can be the same cookie as the session cookie - in fact the user ID can be stored as a session variable.

Getting the User ID in to a Web Application

Web Applications are different from desktop applications in that part of the application runs on the web server and part of it runs on the desktop. The part on the web server is written in a server-side language like PHP, ASP, JSP, Perl, Python, C# or one of the other .Net languages. There are many choices for the server-side language - it can be decided by the organization that runs the server to suit their needs. The client side must almost invariably be presented using HTML, CSS and Javascript. There might be exceptions to this but there are so many users or potential users for an application that anything other than a standards-based, cross-browser approach has a good chance of failing even in a corporate environment. A user normally signs on to a web application in a way that looks the same to them as would a desktop application. They provide a user name and a password. On the server side, the username and password have to be compared to values in a database to check if the user is known and if the password is correct for the user's account. The password in the database is normally encrypted to enhance security. In order to connect a web application with the Single Sign-On technology used elsewhere in the company, the SSO connection has to be performed on the same side of the application as user authentication already occurs - the server side. In the case of using LDAP to authenticate the client for SSO, this means that the web application has to be modified to make query the LDAP server. With most languages this can be done through a software library so that the changes may not run too deep in the application.

SSO with LDAP

Intro

There are several ways to get Single Sign-On (SSO) working with new and existing applications. Some are easier than others and there are different security considerations with each. Kerberos, Shibboleth and even OpenID can be used for SSO but I'm going to focus on LDAP. LDAP is actually a protocol (Lightweight Directory Access Protocol) but the acronym is often used to refer to the database, clients and servers that implement the protocol. LDAP is used for controlling access to applications and is designed toward storing information about people. To that end, some of the objects that commonly exist in an LDAP database include user accounts, address books and organization hierarchies (like org charts).

Computer Login

The password that's normally supplied by each user who's going to use a computer can be validated against an LDAP server. An encrypted copy of the password is stored in the LDAP database. When a user enters a password, the text they've entered is encrypted and sent to the LDAP server for comparison. If the values match then the LDAP server indicates that the user is validated and the user can be granted access. There are a lot of variations on this pattern that include different types of security and verification between the client and the server. Which way it's handled precisely depends on the security requirements of the computer network. Logging in with an LDAP server shouldn't be much different from the user's perspective as long as all goes well. When a password needs to be reset then the reset has to be performed by an administrator on the LDAP server or by some tool that has access to the LDAP database. This can be better or worse depending on the user audience. Some users are better off calling a helpdesk to do the password reset for them, others will be put off by the fact they can't fix their own machine. There are costs and benefits to Single Sign-On from the user perspective.

Application Login

After a user is logged on to their computer there are other applications they'll use. Many of these applications will have access to read and change sensitive data. Of course these applications have to be secured against unauthorized access and often have access logged. A simple login and password can facilitate this in many cases. Application developers in the past have added these features to their applications because there was no central repository for Single Sign-On. Since Single Sign-On has been introduced, every method for SSO has some way for application developers to authenticate or check a user's credentials to decide what kind of access to allow. LDAP describes the protocol for an application to authenticate users and find out what type of access they should be allowed. There are software libraries in many programming languages so that an application can avoid implementing the LDAP protocol directly. Instead they just have to use an existing code library and call in from their application to have the library get the authentication information from the LDAP server. An application might need special information added in to the LDAP database that's suitable for it. That's fine because LDAP allows for any needed object to be defined though the use of a Schema. The Schema is the correct place to define what attributes any LDAP object might have. For example, an application that stores medical records could need to know if a user can read, write or if they can edit. A simple Schema can be defined that describes these permissions. For each user that has access to the medical record application, an LDAP object is created and tied to that user's other LDAP information.

A Single Login for Application and Computer

To achieve SSO for the medical application in this example, the LDAP information about a user would have an object that represents the user's account on a computer and it would have another object that indicates the user's access to the medical application. When logging in, the computer contacts the LDAP server to check the password and user name. After they're logged in, the user launches the medical record application. The application then contacts the LDAP server and checks to see if this user has access and if so, what kind of access. This sounds simple but of course every organization has to tailor LDAP to suit their own SSO needs.

What is Single Sign-On?

Many applications require users to log in supplying a username and a password before they can access the application or perform certain functions. Common examples where a log in is required include email applications, a Windows log in, and most web-based applications that store any personal information. Users don't want to log in to an application, what they want is to perform some task or get access to some data. The tasks and data are completely application-specific. When I log in to my email client it's not because I want to log in it's because I want to read or send email. It's a pretty obvious fact but it's important to pay attention to because the act of logging in with a user name and password have become a such a common part of daily life that many people experience Password Fatigue - a condition that results when people are required to remember many passwords as part of their daily living. Many attempts have been made to handle consolidation of user identification across websites such as OpenID. This is not a simple problem to solve. The case is different where you have several applications that all belong to one organization. If all the users and all the applications are run by the same person, company or organization then why have many different user names and passwords? All of a user's passwords and usernames can be stored in one trusted source that meets the requirements of the most demanding application. This concept is called Single Sign-On (SSO). Single Sign-on means that a user can log in one time and have access to many applications for that session. SSO can reduce the number of logins and passwords that a user has to remember from twenty or more all the way down to just one. Like I said at the beginning, users don't log in because they want to log in. They log in to get access to some data or function that the application has. With SSO the user logs in to the computer then they can just open their email without a password. They can access company websites and web applications without a password. They can use time sheets applications, accounting applications, company directories, internal instant messaging and company database applications all without remembering one more password and without compromising data security. This is more than just convenience, it simplifies workflows to enhance productivity. It enhances moral and reduces the moments where users pause and curse an application. It lets users follow directives to choose strong passwords that they can remember because there's only one. Single Sign-On is not nice to have. It is essential for any business that wants to grow and retain loyal employees.

A Little LDAP Progress

Background

I'm trying to move forward with the plan I outlined the other day. In short I want to use LDAP to simplify my home network of five computers and six users. I haven't got as far as setting up a login yet but I have got the LDAP server running on one of the computers (named copper) that's running OpenSuse 10.2. Today I just want to talk about the steps I've taken to experiment at getting something going. I'm learning this as I go and these are just notes to help remember how I got to where I am. If they help you too then that's great.

Planning for OpenLDAP at Home

A lot's been going on at home lately, Candace and her brood are coming to live with me and my daughter. We're doing piles of construction in the basement to get bedrooms built. We're all excited and working hard to get stuff done this summer. More importantly though, it is now normal for there to be five computers in my living room (none of which are really meant for my use any more, but that's beside the point). Any of six residents can be in the house at any given time. There are also cases where we might log in remotely: for email, SSH access or a couple other web applications that I run on one of the machines like a wiki and calendar. Then there's Asterisk, which I haven't had up lately but desperately want to get back online.

Background - Many to Many Too Many

Obviously we need to have some common file storage locations and control for access to those locations. So I've decided to look more seriously into setting up LDAP. Currently one of the machines dual boots Windows XP and OpenSuse 10.2. Another one (that I use for a Myth TV front end) runs OpenSuse 10.1. My desktop is full-time OpenSuse 10.2 for now, though I might be pressed to also install Windows Vista soon (resisting with all my might). Let's see... that leaves the two laptops. They run Windows XP. Oh, I almost forgot about the old DOS box I put in the garage to run the CNC. I'll not worry about it for the moment.