Libki and Koha: Leveraging Open Source Software for Single Sign-on Integration
|
|
|
- Valerie Watts
- 10 years ago
- Views:
Transcription
1 Kyle Hall uses the case of Koha v. Libki to illustrate best practices for librarians looking to integrate two open source software systems in this chapter from editor Nicole Engard s More Library Mashups. Libki and Koha: Leveraging Open Source Software for Single Sign-on Integration Kyle M. Hall ByWater Solutions How does one go about getting two pieces of software to talk to each other? Pass them notes? Set them up on a blind date? It s unlikely that will work at least not until our computers become self-aware. If you are integrating two proprietary and/or closed source systems, you have a few options. If you are lucky, perhaps a protocol exists for those systems to speak to each other, and if you are really lucky, perhaps both systems already know how to speak the same language. Otherwise, be prepared to start writing checks! Likely, you ll need to pay one or both companies to get your systems to talk to each other, if they are even willing to work with and for you. If your two systems are both free and open source software, you have another choice: You can do it yourself, or if not you, someone on your team or perhaps a freelance developer. A good example of this type of integration can be found in the case of Koha v. Libki, which took place at the Crawford County Federated Library System in Pennsylvania. Koha (koha-community.org) is the first free and open source software library automation package, or integrated library system (ILS). Libraries of varying types and sizes, volunteers, and support companies from around the world sponsor the development and growth of Koha. The name comes from the Māori term for a gift or donation. Libki (libki.org) is is a free and open source kiosk management system, with a web-based administration system and a cross-platform 261
2 262 More Library Mashups client. Libki is ideally suited for use in locations where a controlled computing environment is paramount, such as public access systems, libraries, school computer laboratories, and more. The pre 1.0 version of Libki did not have Session Initiation Protocol (SIP) support built in like it does today, so something more tricky, more clever, and more hackerish had to be devised to get it to communicate with Koha. Crawford County in Pennsylvania has nine libraries, all sharing one Koha ILS server located in the most central location in the county, Meadville. Many of these libraries also use the Libki Kiosk Management System to time limit computer access, and these Libki servers are found on site at each library in the county. The libraries want single sign-on between all these systems, yet no protocol that could accomplish this is supported between the two. So how do we accomplish this task? We start hacking. Planning The first task in this scenario is to decide which system is considered the primary source of information in other words, from which system will the rest of the system receive information and update itself? In this case, the obvious choice is the Koha server, because not only do we have a single Koha server and many Libki servers, but because the data the Koha server stores far exceeds that of our Libki servers. Koha stores detailed information about all library patrons: names, addresses, birth dates, and so on. Libki, on the other hand, stores a very minimal amount of data such as usernames and passwords. Since the only pieces of information we need to transmit are usernames and passwords, this works very well. Our next job is to locate how and where that information is stored in both systems, and also to locate the (hopefully singular) points in the software s source code where these values get modified. In Koha, we can find this data in the MySQL database table Borrowers under the columns User ID and Password. The password is not stored in plain text, of course that would be a terrible violation of security practices. Instead, if one examines the code for Koha 3.12 (the latest version at the time of this writing) or earlier, they will see that all passwords in Koha are hashed using md5 and then
3 Libki and Koha: Leveraging Open Source Software 263 encoded in base64 by the aptly named function md5_base64, which is provided by the Perl library Digest::MD5. In Libki < 1.0, the users are stored in the database table logins, using the columns Username and Password. As luck would have it, Libki also uses this same password storage scheme. If we had not been so lucky, we would still be able to accomplish our task, but it would have been slightly more difficult. So, now that we know all about the data we are storing, we need to know where said data is created, updated, and deleted from within Koha. Those are the places where we need to set up triggers to update our Libki servers. In the case of Koha, we have three subroutines dealing with this in the Members module of Koha: AddMember, ModMember, and DelMember respectively. In each of those subroutines, we add the following code: if (C4::Context->preference('LibkiIntegration')) { my $borrowernumber = $data{borrowernumber; C4::Libki::UpdateForLibki($borrowernumber); This is just a fancy way of saying, If we ve enabled integration between Koha and Libki, and we are changing this user in some way, run the subroutine UpdateForLibki for this account. So what is in the C4::Libki module, you may ask? Not much. Here is the source code for said module: package C4::Libki; Copyright 2011 Kyle M Hall <[email protected]> This file is part of Koha. Koha is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later
4 264 More Library Mashups version. Koha is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Koha; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA USA. use strict; use warnings; use C4::Context; use BEGIN { set the version for version checking $VERSION = 1.01; require = = qw(&updateforlibki); sub UpdateForLibki { my ($borrowernumber) my $dbh = C4::Context->dbh; my $sql = "INSERT INTO libki_queue (borrowernumber) VALUES (?)" my $sth = $dbh->prepare($sql); $sth->execute($borrowernumber);
5 Libki and Koha: Leveraging Open Source Software 265 1; END So to put it succinctly, UpdateForLibki simple puts the unique identifier into a new and special table we ve created just for this task. Yes, we could have put this code directly into each of the previously mentioned subroutines, but doesn t it look so much prettier this way? At this point, we have a list of all the accounts in Koha that need to be created, updated, or deleted in all of our respective Libki servers. The next task on our docket is to accomplish just that. How do we do this? With a daemon of course! The friendly, useful kind not the fiery damn-you-to-eternal-pain-and-torture kind. For the uninitiated, a daemon is a computer program that runs as a background process, rather than being a program that you run and control interactively. For example, at a restaurant, you could say your server is a program you interact with when you give that server your order. The server writes down your order and walks over to the kitchen window where he puts that order on one of those order wheels with the clips (and thus is revealed my deep understanding of restaurant nomenclature). The chef waits in the background, notices a new order is coming in, and begins preparing the food. In this example, our chef is much like a daemon, lurking in the background, waiting to spring into action. Here is our daemon:!/usr/bin/perl use strict; use warnings; use File::Basename; use Fcntl qw(lock_ex LOCK_NB); use C4::Context; use constant SLEEP_INTERVAL => 15;
6 266 More Library Mashups my $daemon = basename($0); open(selflock, "<$0") or die("couldn't open $0: $!\n"); flock(selflock, LOCK_EX LOCK_NB) or die("aborting: another $daemon is already running\n"); Get ready to daemonize by redirecting our output to syslog, requesting that logger prefix the lines with our program name: open(stdout, " -", "logger -t $daemon") or die("couldn't open logger output stream: $!\n"); open(stderr, ">&STDOUT") or die("couldn't redirect STDERR to STDOUT: $!\n"); $ = 1; Make output line-buffered so it will be flushed to syslog faster Avoid the possibility of our working directory resulting in keeping an otherwise unused filesystem in use chdir('/'); Double-fork to avoid leaving a zombie process behind: exit if (fork()); exit if (fork()); sleep 1 until getppid() == 1; print "$daemon $$ successfully daemonized\n"; my $dbh = C4::Context->dbh; my $sth; while (1) { while (! $dbh->ping) { $dbh = C4::Context->dbh;
7 Libki and Koha: Leveraging Open Source Software 267 $sth = $dbh->prepare("select * FROM libki_ queue"); $sth->execute(); while (my $r = $sth->fetchrow_hashref) { my $borrowernumber = $r->{'borrowernumber'; exec("koha2libki_update.php $borrowernumber & "); $dbh->do( "DELETE FROM libki_queue WHERE borrowernumber = $borrowernumber" ); sleep(sleep_interval); So what does all this fantastical nonsense accomplish? Every 15 seconds, it checks the table libki_queue (our order wheel) to see if there are any user identifiers ( borrowernumber in our case) in there. For each of these identifiers it finds, the daemon creates another process, which calls the script koha2libki_update.php to handle the real update for each of the Libki servers. You may have noticed all our code examples so far have been written in Perl, but we are now executing a PHP script. Why, you may ask? That is because Koha is written in Perl, but the script we are calling was included with Libki, which is written in PHP. Here is that script:!/usr/bin/php <?php This file is part of Libki. Libki is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
8 268 More Library Mashups Libki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Libki. If not, see < org/licenses/>. Get borrowernumber from arguments $borrowernumber = $argv[1]; if (empty($borrowernumber)) { die ("No borrowernumber given!\n"); The libki ini file contains a section for each of our Libki servers $libki = parse_ini_file("/etc/libki/libki.ini", $process_sections=true) or die("unable to parse / etc/libki/libki.ini\n"); The koha ini file contains just data about how to connect to our Koha server's database $koha = parse_ini_file("/etc/libki/koha.ini"); Open the Koha database $kdbh = mysql_connect($koha["host"], $koha["username"], $koha["password"]) or die("unable to connect to Koha MySQL Server\n"); mysql_select_db($koha["database"], $kdbh); Grab the userid and password of the user based on the borrowernumber $query = "SELECT userid, password FROM borrowers WHERE borrowernumber = '$borrowernumber'";
9 Libki and Koha: Leveraging Open Source Software 269 $results = mysql_query($query, $kdbh); $result = mysql_fetch_assoc($results); $userid = $result['userid']; $password = $result['password']; foreach ($libki as $ini) { Open the LibKi database $ldbh = mysql_connect($ini["host"], $ini["username"], $ini["password"]); mysql_select_db($ini["database"], $ldbh ; if ($userid) { Get default starting minutes from database $query = "SELECT value FROM settings WHERE name = 'daily_minutes'"; $results = mysql_query($query, $ldbh); $result = mysql_fetch_assoc($results); $daily_minutes = $result['value']; Check to see if this user is already in libki $query = "SELECT COUNT(*) AS userexists FROM logins WHERE username = '$userid'"; $results = mysql_query($query, $ldbh); $result = mysql_fetch_assoc($results); $userexists = $result['userexists']; If the user doesn't already exist, create the user in libki if (! $userexists) { $query = "INSERT INTO logins (username, units, status, password) VALUES ('$userid', '$daily_minutes', 'Logged out', '$password')"; mysql_query($query, $ldbh); else { Copy over the koha password $query = "UPDATE logins SET password = '$password' WHERE username = '$userid'"; mysql_query($query, $ldbh);
10 270 More Library Mashups else { User no longer exists in Koha, delete this user from Libki $query = "DELETE FROM logins WHERE username = '$userid'"; mysql_query($query, $ldbh);?> What this script does, in layman s terms, is take a user identifier and look it up in our Koha database. If it finds it, it then calls out to each of the Libki server s databases and says Hey you! Yeah, I m talking to you! Does this user exist in your database? The Libki database then replies with Yeah! I got your user right here! or Heck no, we ain t got no user like that! It s quite obvious that our Libki database did not go to an Ivy League school. Once we know if the user exists or not, we can then tell the Libki database to update the existing user s password or to create the new user with the given username and password data, respectively. To satisfy your curiosity, here is an example of what the libki.ini file would look like for a system with three libraries: [LibraryA] host = libki.librarya.mylibrarysystem.org username = libkiadmin password = apoorlychosenpassword database = libki [LibraryB] host = libki.libraryb.mylibrarysystem.org username = libkiadmin password = anothernotsogoodpassword database = libki [LibraryC] host = libki.libraryc.mylibrarysystem.org username = libkiadmin password = theworstpasswordyet database = libki
11 Libki and Koha: Leveraging Open Source Software 271 Each Libki installation could have, in theory, a different username and database name, but why mess with success? Conclusion If you are a programmer, you may be saying Wow, I could have done a way better job than this. What a mess! To that I would reply Cut me some slack! I was in a hurry! It works, doesn t it? Why do you have to kick me right in the self-esteem? Indeed, I m sure there are many ways to improve and streamline this system, but it is merely an example of what can be accomplished when you leverage the power of free and open source software. To reiterate our basic process, this is what we did: 1. Identify our data A. Identify our source data B. Identify our target data 2. Identify our relevant source code A. Identify data creation code B. Identify data modification code C. Identify data deletion code 3. Create a shim to communicate our source data to our targets A. Insert code to call shim for each data alteration B. Shim checks to see which action needs to be taken C. Shim implements said action In our example (Figure 18.1), we were lucky in that both our source and target data were stored in MySQL databases. In the open source world, it is common for data to be stored in an open source DBMS such as MySQL or PostgresSQL. For other software where you cannot get direct access to the data, you may need to identify a service API you could call on instead. Remember, there s always more than one way to do it.
12 272 More Library Mashups Figure 18.1 Data flow from Koha to Libki I hope you ve been informed and amused by my incoherent ramblings. And I hope my example illustrates how it s almost always possible to make two systems work together if you put your mind to it! About the Author Kyle M. Hall received his MS in Information Technology from Edinboro University (PA). He has been fulfilling the IT needs of librarians for over a decade at the Crawford County Federated Library System as an IT specialist and Koha developer. His work has not only included enhancing Koha itself but also authorship of the Koha Offline Circulation tool and the maintenance of the Koha Virtual Appliance. He is also the sole author of Libki. This chapter originally appeared in More Library Mashups: Exploring New Ways to Deliver Library Data, edited by Nicole C. Engard. For more information visit
Serious Threat. Targets for Attack. Characterization of Attack. SQL Injection 4/9/2010 COMP620 1. On August 17, 2009, the United States Justice
Serious Threat SQL Injection COMP620 On August 17, 2009, the United States Justice Department tcharged an American citizen Albert Gonzalez and two unnamed Russians with the theft of 130 million credit
TAMS Analyzer 3 and Multi-User Projects. By Matthew Weinstein
TAMS Analyzer 3 and Multi-User Projects By Matthew Weinstein 1 I. Introduction TAMS has always had multiple users in mind, ever since TA1 supported signed tags, i.e., tags that had the coder s initials
Tracking E-mail Campaigns with G-Lock Analytics
User Guide Tracking E-mail Campaigns with G-Lock Analytics Copyright 2009 G-Lock Software. All Rights Reserved. Table of Contents Introduction... 3 Creating User Account on G-Lock Analytics. 4 Downloading
% & ' # ('$ %$)$ &*&& ) & *)+,-%. / 0--"1####$ % % # 2 (3 &,--%. # 6/4-7/*8,#071*!",7*%,+07+5 "!96+*%,+07+5 "!96+& (& * *% & & ; %&< & ###
!"$% && % & ' ('$ %$)$ &*&& ) & *)+,-%. / 0--"1$ % % 2 (3 &,--%. 45-4 & 6/4-7/*8/71*!"5+,"*%,+07+5 "!96+ 6/4-7/*8,071*!",7*%,+07+5 "!96+*%,+07+5 "!96+& 6/4-7/*8,071*!",7*%,+07+5 "!96+*%,+07+5 "!96+& :,
IT Support Tracking with Request Tracker (RT)
IT Support Tracking with Request Tracker (RT) Archibald Steiner AfNOG 2013 LUSAKA Overview What is RT? A bit of terminology Demonstration of the RT web interface Behind the scenes configuration options
The Definitive Guide. Active Directory Troubleshooting, Auditing, and Best Practices. 2011 Edition Don Jones
The Definitive Guide tm To Active Directory Troubleshooting, Auditing, and Best Practices 2011 Edition Don Jones Ch apter 5: Active Directory Auditing... 63 Goals of Native Auditing... 63 Native Auditing
Advanced Web Security, Lab
Advanced Web Security, Lab Web Server Security: Attacking and Defending November 13, 2013 Read this earlier than one day before the lab! Note that you will not have any internet access during the lab,
Installation & Configuration Guide User Provisioning Service 2.0
Installation & Configuration Guide User Provisioning Service 2.0 NAVEX Global User Provisioning Service 2.0 Installation Guide Copyright 2015 NAVEX Global, Inc. NAVEX Global is a trademark/service mark
HIPAA Compliance Use Case
Overview HIPAA Compliance helps ensure that all medical records, medical billing, and patient accounts meet certain consistent standards with regard to documentation, handling, and privacy. Current Situation
PaperCut Payment Gateway Module Realex Realauth Redirect Quick Start Guide
PaperCut Payment Gateway Module Realex Realauth Redirect Quick Start Guide This guide is designed to supplement the Payment Gateway Module documentation and provides a guide to installing, setting up,
Koha 3 Library Management System
P U B L I S H I N G community experience distilled Koha 3 Library Management System Savitra Sirohi Amit Gupta Chapter No.4 "Koha's Web Installer, Crontab, and Other Server Configurations" In this package,
RSA Two Factor Authentication. Feature Description
RSA Two Factor Authentication Feature Description VERSION: 3.0 UPDATED: SEPTEMBER 2015 Copyright Notices Copyright 2002 2015 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP
Database Extension 1.5 ez Publish Extension Manual
Database Extension 1.5 ez Publish Extension Manual 1999 2012 ez Systems AS Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,Version
Installing CPV Lab Version 2.17
Installing CPV Lab Version 2.17 END-USER LICENSE AGREEMENT ( EULA ) FOR CPV LAB This End-User License Agreement ("EULA") pertains to the CPV Lab product (called Software" in this Agreement). Read the terms
Novell Identity Manager
Password Management Guide AUTHORIZED DOCUMENTATION Novell Identity Manager 3.6.1 June 05, 2009 www.novell.com Identity Manager 3.6.1 Password Management Guide Legal Notices Novell, Inc. makes no representations
Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102
Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Interneer, Inc. Updated on 2/22/2012 Created by Erika Keresztyen Fahey 2 Workflow - A102 - Basic HelpDesk Ticketing System
Cardsave Payment Gateway
Cardsave Payment Gateway Cart Implementation David McCann Cardsave Online Version 1 1 st August 2010 Contents Page Overview 3-4 o Integration Types 3 Direct/Integrated (Preferred Method) Re-direct/Hosted
Debian and Windows Shared Printing mini HOWTO
Debian and Windows Shared Printing mini HOWTO Ian Ward 2005 07 01 Revision History Revision 1.6 2005 07 01 Revised by: iw Clarified hpijs requirement, added lpinfo and lpoptions
Cloud Identity Management Tool Quick Start Guide
Cloud Identity Management Tool Quick Start Guide Software version 2.0.0 October 2013 General Information: [email protected] Online Support: [email protected] Copyright 2013 CionSystems Inc., All
VOL. 2, NO. 1, January 2012 ISSN 2225-7217 ARPN Journal of Science and Technology 2010-2012 ARPN Journals. All rights reserved
Mobile Application for News and Interactive Services L. Ashwin Kumar Department of Information Technology, JNTU, Hyderabad, India [email protected] ABSTRACT In this paper, we describe the design and
IT360: Applied Database Systems. Database Security. Kroenke: Ch 9, pg 309-314 PHP and MySQL: Ch 9, pg 217-227
IT360: Applied Database Systems Database Security Kroenke: Ch 9, pg 309-314 PHP and MySQL: Ch 9, pg 217-227 1 Database Security Rights Enforced Database security - only authorized users can perform authorized
LISTSERV LDAP Documentation
LISTSERV LDAP Documentation L Soft Sweden AB 2007 28 November 2007 Overview LISTSERV version 15.5 can interface to LDAP servers to authenticate user logins, to insert LDAP attributes in mail merge distributions
To use MySQL effectively, you need to learn the syntax of a new language and grow
SESSION 1 Why MySQL? Session Checklist SQL servers in the development process MySQL versus the competition To use MySQL effectively, you need to learn the syntax of a new language and grow comfortable
User Migration Tool. Note. Staging Guide for Cisco Unified ICM/Contact Center Enterprise & Hosted Release 9.0(1) 1
The (UMT): Is a stand-alone Windows command-line application that performs migration in the granularity of a Unified ICM instance. It migrates only Unified ICM AD user accounts (config/setup and supervisors)
RSA Two Factor Authentication
RSA Two Factor Authentication VERSION: 1.0 UPDATED: MARCH 2014 Copyright 2002-2014 KEMP Technologies, Inc. All Rights Reserved. Page 1 / 16 Copyright Notices Copyright 2002-2014 KEMP Technologies, Inc..
ESMO ONLINE EVENT REGISTRATION INSTRUCTION REGISTER YOURSELF
ESMO ONLINE EVENT REGISTRATION INSTRUCTION REGISTER YOURSELF INDEX Preliminary information Registration requirements... Page 2 Individual registration 1. Account with ESMO... Page 3 2. Login into your
TeamViewer 9 Manual Management Console
TeamViewer 9 Manual Management Console Rev 9.2-07/2014 TeamViewer GmbH Jahnstraße 30 D-73037 Göppingen www.teamviewer.com Table of Contents 1 About the TeamViewer Management Console... 4 1.1 About the
Hyper V Windows 2012 and 8. Virtual LoadMaster for Microsoft Hyper V on Windows Server 2012, 2012 R2 and Windows 8. Installation Guide
Virtual LoadMaster for Microsoft Hyper V on Windows Server 2012, 2012 R2 and Windows 8 Installation Guide VERSION: 3.0 UPDATED: SEPTEMBER 2015 Copyright Notices Copyright 2002 2015 KEMP Technologies, Inc..
Content Management System
Content Management System XT-CMS INSTALL GUIDE Requirements The cms runs on PHP so the host/server it is intended to be run on should ideally be linux based with PHP 4.3 or above. A fresh install requires
STABLE & SECURE BANK lab writeup. Page 1 of 21
STABLE & SECURE BANK lab writeup 1 of 21 Penetrating an imaginary bank through real present-date security vulnerabilities PENTESTIT, a Russian Information Security company has launched its new, eighth
smtp-user-enum User Documentation
smtp-user-enum User Documentation [email protected] 21 January 2007 Contents 1 Overview 2 2 Installation 2 3 Usage 3 4 Some Examples 3 4.1 Using the SMTP VRFY Command................. 4 4.2
SQL Injection. The ability to inject SQL commands into the database engine through an existing application
SQL Injection The ability to inject SQL commands into the database engine through an existing application 1 What is SQL? SQL stands for Structured Query Language Allows us to access a database ANSI and
PHP Integration Kit. Version 2.5.1. User Guide
PHP Integration Kit Version 2.5.1 User Guide 2012 Ping Identity Corporation. All rights reserved. PingFederate PHP Integration Kit User Guide Version 2.5.1 December, 2012 Ping Identity Corporation 1001
How To Create A Database Driven Website On A Computer Or Server Without A Database (Iis) Or A Password (Ict) On A Server (Iip) Or Password (Web) On An Anonymous Guestbook (Iit) On Your
Information and Communication Technologies Division Security Notes on Active Server Pages (ASP) and MS-SQL Server Integration Prepared by: Contributor: Reviewed: Richard Grime Chris Roberts Tom Weil Version:
Manage2 API. by: J. Nick Koston
Manage2 API by: J. Nick Koston Training Seminar 2006 Introduction! Hello, My name is Nick! This presentation is about the Manage2 API.! This also covers basic ideas behind our Manage2 system.! Our Manage2
PaperCut Payment Gateway Module CommWeb Quick Start Guide
PaperCut Payment Gateway Module CommWeb Quick Start Guide This guide is designed to supplement the Payment Gateway Module documentation and provides a guide to installing, setting up, and testing the Payment
Event Manager. LANDesk Service Desk
Event Manager LANDesk Service Desk LANDESK SERVICE DESK EVENT MANAGER GUIDE This document contains information that is the proprietary and confidential property of LANDesk Software, Inc. and/or its affiliated
How Configuration Management Tools Address the Challenges of Configuration Management
Streamlining Configuration Management The Essentials Series How Configuration Management Tools Address the Challenges of Configuration Management sponsored by Introduction to Realtime Publishers by Don
The Social Accelerator Setup Guide
The Social Accelerator Setup Guide Welcome! Welcome to the Social Accelerator setup guide. This guide covers 2 ways to setup SA. Most likely, you will want to use the easy setup wizard. In that case, you
Getting Started with Dynamic Web Sites
PHP Tutorial 1 Getting Started with Dynamic Web Sites Setting Up Your Computer To follow this tutorial, you ll need to have PHP, MySQL and a Web server up and running on your computer. This will be your
Role Based Access Control. Using PHP Sessions
Role Based Access Control Using PHP Sessions Session Developed in PHP to store client data on the web server, but keep a single session ID on the client machine (cookie) The session ID : identifies the
How To Use The Correlog With The Cpl Powerpoint Powerpoint Cpl.Org Powerpoint.Org (Powerpoint) Powerpoint (Powerplst) And Powerpoint 2 (Powerstation) (Powerpoints) (Operations
orrelog SQL Table Monitor Adapter Users Manual http://www.correlog.com mailto:[email protected] CorreLog, SQL Table Monitor Users Manual Copyright 2008-2015, CorreLog, Inc. All rights reserved. No part
CS 145: NoSQL Activity Stanford University, Fall 2015 A Quick Introdution to Redis
CS 145: NoSQL Activity Stanford University, Fall 2015 A Quick Introdution to Redis For this assignment, compile your answers on a separate pdf to submit and verify that they work using Redis. Installing
Caché License Management
Caché License Management Version 5.0.17 30 June 2005 InterSystems Corporation 1 Memorial Drive Cambridge MA 02142 www.intersystems.com Caché License Management InterSystems Version 5.0.17 30 June 2005
Minecraft Server Dashboard Users Guide
Minecraft Server Dashboard Users Guide navhaxs Minecraft Server Dashboard simplifies your server management experience by replacing all the manual editing of configuration files and console commands with
Database Security. Principle of Least Privilege. DBMS Security. IT420: Database Management and Organization. Database Security.
Database Security Rights Enforced IT420: Database Management and Organization Database Security Textbook: Ch 9, pg 309-314 PHP and MySQL: Ch 9, pg 217-227 Database security - only authorized users can
Centova Cast. Reseller Usage Guide. Published May 04, 2015 Copyright 2015, Centova Technologies Inc. Centova Technologies Inc. www.centova.
Centova Cast Reseller Usage Guide Published May 04, 2015 Copyright 2015, Centova Technologies Inc. Centova Technologies Inc. www.centova.com Contents 1 Introduction 2 2 Installing and Upgrading Centova
Basics Series-4006 Email Basics Version 9.0
Basics Series-4006 Email Basics Version 9.0 Information in this document is subject to change without notice and does not represent a commitment on the part of Technical Difference, Inc. The software product
5. At the Windows Component panel, select the Internet Information Services (IIS) checkbox, and then hit Next.
Installing IIS on Windows XP 1. Start 2. Go to Control Panel 3. Go to Add or RemovePrograms 4. Go to Add/Remove Windows Components 5. At the Windows Component panel, select the Internet Information Services
uniting brand & personality, by design. email campaigns made easy...
uniting brand & personality, by design. email campaigns made easy... why? It delivers results - Email marketing returns more than double the average return for other forms of online marketing and more
Linux Syslog Messages in IBM Director
Ever want those pesky little Linux syslog messages (/var/log/messages) to forward to IBM Director? Well, it s not built in, but it s pretty easy to setup. You can forward syslog messages from an IBM Director
Dell World Software User Forum 2013
Dell World User Forum 2013 December 9-12 Austin, TX K1000 Service Desk Advanced Gerald Gillespie & John Verbosky A Typical Day in Corporate America 2 A funny thing happened to me on the way Mary in IT
How-To: MySQL as a linked server in MS SQL Server
How-To: MySQL as a linked server in MS SQL Server 1 Introduction... 2 2 Why do I want to do this?... 3 3 How?... 4 3.1 Step 1: Create table in SQL Server... 4 3.2 Step 2: Create an identical table in MySQL...
Digger Solutions. Intranet Open Source. Administrator s Guide
Digger Solutions Intranet Open Source Administrator s Guide Hello and welcome to your new Intranet! Welcome to Digger Solutions Intranet Open Source. If you have any questions please review the product
UltraLog HSPI User s Guide
UltraLog HSPI User s Guide A HomeSeer HS2 plug-in to store and retrieve HomeSeer and syslog events Copyright 2013 [email protected] Revised 01/27/2013 This document contains proprietary and copyrighted
Nokia for Business. Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation
Nokia for Business Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation Nokia E50 Legal Notice Copyright Nokia 2006. All rights reserved. Reproduction, transfer, distribution
Business Portal for Microsoft Dynamics GP. Project Time and Expense Administrator s Guide Release 10.0
Business Portal for Microsoft Dynamics GP Project Time and Expense Administrator s Guide Release 10.0 Copyright Copyright 2007 Microsoft Corporation. All rights reserved. Complying with all applicable
Who s Doing What? Analyzing Ethernet LAN Traffic
by Paul Barry, [email protected] Abstract A small collection of Perl modules provides the basic building blocks for the creation of a Perl-based Ethernet network analyzer. I present a network analyzer
Hands-On UNIX Exercise:
Hands-On UNIX Exercise: This exercise takes you around some of the features of the shell. Even if you don't need to use them all straight away, it's very useful to be aware of them and to know how to deal
SQL Server. SQL Server 100 Most Asked Questions: Best Practices guide to managing, mining, building and developing SQL Server databases
SQL Server SQL Server 100 Most Asked Questions: Best Practices guide to managing, mining, building and developing SQL Server databases SQL Server 100 Success Secrets Copyright 2008 Notice of rights All
Release Notes LS Retail Data Director 3.01.04 August 2011
Release Notes LS Retail Data Director 3.01.04 August 2011 Copyright 2010-2011, LS Retail. All rights reserved. All trademarks belong to their respective holders. Contents 1 Introduction... 1 1.1 What s
Drupal + Formulize. A Step-by-Step Guide to Integrating Drupal with XOOPS/ImpressCMS, and installing and using the Formulize module
Drupal + Formulize A Step-by-Step Guide to Integrating Drupal with XOOPS/ImpressCMS, and installing and using the Formulize module May 16, 2007 Updated December 23, 2009 This document has been prepared
ER/Studio 8.0 New Features Guide
ER/Studio 8.0 New Features Guide Copyright 1994-2008 Embarcadero Technologies, Inc. Embarcadero Technologies, Inc. 100 California Street, 12th Floor San Francisco, CA 94111 U.S.A. All rights reserved.
An Introduction to Developing ez Publish Extensions
An Introduction to Developing ez Publish Extensions Felix Woldt Monday 21 January 2008 12:05:00 am Most Content Management System requirements can be fulfilled by ez Publish without any custom PHP coding.
A Manual on use of ABCD central and VHL-Site modules for Developing Library Information Discovery and Information Literacy Tools
A Manual on use of ABCD central and VHL-Site modules for Developing Library Information Discovery and Information Literacy Tools By Arnold M. Mwanzu From Kenya: United States International University-Africa
Mashup Sites for SharePoint 2007 Authentication Guide. Version 3.1.1
Mashup Sites for SharePoint 2007 Authentication Guide Version 3.1.1 Copyright Copyright 2010-2011, JackBe Corp. and its affiliates. All rights reserved. Terms of Use This documentation may be printed and
Web Applications Security: SQL Injection Attack
Web Applications Security: SQL Injection Attack S. C. Kothari CPRE 556: Lecture 8, February 2, 2006 Electrical and Computer Engineering Dept. Iowa State University SQL Injection: What is it A technique
Integration Guide. SafeNet Authentication Service. Using SAS as an Identity Provider for Drupal
SafeNet Authentication Service Integration Guide Technical Manual Template Release 1.0, PN: 000-000000-000, Rev. A, March 2013, Copyright 2013 SafeNet, Inc. All rights reserved. 1 Document Information
Virtual Contact Center
Virtual Contact Center MS Dynamics CRM Integration Configuration Guide Version 7.0 Revision 1.0 Copyright 2012, 8x8, Inc. All rights reserved. This document is provided for information purposes only and
Active Directory Recovery: What It Is, and What It Isn t
Active Directory Recovery: What It Is, and What It Isn t Abstract Does your Active Directory recovery plan address all of the most common failure scenarios? This white paper explains how to handle each
Please note that a username and password will be made available upon request. These are necessary to transfer files.
Transferring Data Using Secure File Transfer Process ASU Center for Health Information and Research (CHiR) data partners can now securely electronically send their data submissions by means of Secure File
Databases and SQL. The Bioinformatics Lab SS 2013 - Wiki topic 10. Tikira Temu. 04. June 2013
Databases and SQL The Bioinformatics Lab SS 2013 - Wiki topic 10 Tikira Temu 04. June 2013 Outline 1 Database system (DBS) Definition DBS Definition DBMS Advantages of a DBMS Famous DBMS 2 Some facts about
HELP DESK MANUAL INSTALLATION GUIDE
Help Desk 6.5 Manual Installation Guide HELP DESK MANUAL INSTALLATION GUIDE Version 6.5 MS SQL (SQL Server), My SQL, and MS Access Help Desk 6.5 Page 1 Valid as of: 1/15/2008 Help Desk 6.5 Manual Installation
Log Insight Manager. Deployment Guide
Log Insight Manager Deployment Guide VERSION: 3.0 UPDATED: OCTOBER 2015 Copyright Notices Copyright 2002-2015 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies
Upgrading from VAM/SQL MS303 to VAM/SQL MS401
Upgrading from VAM/SQL MS303 to VAM/SQL MS401 First Release: April, 1999 The information contained in this document represents the current view of AccountMate Software Corporation on the issues discussed
How To Protect Your Active Directory (Ad) From A Security Breach
Securing Active Directory: An Ounce of Prevention or a Pound of Cure? Abstract This technical brief reviews three tasks that should be a part of your proactive Active Directory (AD) security routine: Establishing
Questions that Ask Us 24/7 Public Librarians are hesitant to answer
Questions that Ask Us 24/7 Public Librarians are hesitant to answer Math Possible sites to help: Wolfram Alpha for Educators: http://www.wolframalpha.com/educators/lessonplans.html Wolfram Alpha Blog,
Shopping Cart Manual. Written by Shawn Xavier Mendoza
Shopping Cart Manual Written by Shawn Xavier Mendoza Table of Contents 1 Disclaimer This manual assumes that you are using Wix.com for website creation, and so this method may not work for all other online
smarshencrypt User s Guide
Versions Addressed: smarshencrypt 2.0 Document Updated: 7/30/2010 Copyright 2010 Smarsh, Inc. All rights Purpose: This document will guide the end user in receiving and viewing smarshencrypt secure messages.
Best Practices for Log File Management (Compliance, Security, Troubleshooting)
Log Management: Best Practices for Security and Compliance The Essentials Series Best Practices for Log File Management (Compliance, Security, Troubleshooting) sponsored by Introduction to Realtime Publishers
High Availability Setup Guide
High Availability Setup Guide Version: 9.0 Released: March 2015 Companion Guides: The UniPrint Infinity Administrator s Guide, Cluster Guide and Mobile Setup Guide can be found online for your convenience
How To Send Your Email Newsletter
How To Send Your Email Newsletter You can manage email contacts and send your email newsletter through our proprietary email system called the ONLINE MARKETING CENTER. On the next few pages of this guide
How To Set Up Total Recall Web On A Microsoft Memorybook 2.5.2.2 (For A Microtron)
Total Recall Web Web Module Manual and Customer Quick Reference Guides COPYRIGHT NOTICE Copyright 1994-2009 by DHS Associates, Inc. All Rights Reserved. All TOTAL RECALL, TOTAL RECALL SQL, TOTAL RECALL
Admin Reference Guide. PinPoint Document Management System
Admin Reference Guide PinPoint Document Management System 1 Contents Introduction... 2 Managing Departments... 3 Managing Languages... 4 Managing Users... 5 Managing User Groups... 7 Managing Tags... 9
Klarna Magento module
Klarna Magento module User guide Payment module version: 5.x.+ User guide 1.0 Revision: 1.1 Table of Contents User guide Welcome to Klarna How do you benefit? What is Klarna s offering? Prerequisites Before
An Oracle White Paper June 2014. RESTful Web Services for the Oracle Database Cloud - Multitenant Edition
An Oracle White Paper June 2014 RESTful Web Services for the Oracle Database Cloud - Multitenant Edition 1 Table of Contents Introduction to RESTful Web Services... 3 Architecture of Oracle Database Cloud
PuTTY/Cygwin Tutorial. By Ben Meister Written for CS 23, Winter 2007
PuTTY/Cygwin Tutorial By Ben Meister Written for CS 23, Winter 2007 This tutorial will show you how to set up and use PuTTY to connect to CS Department computers using SSH, and how to install and use the
Enforcive / Enterprise Security
TM Enforcive / Enterprise Security End to End Security and Compliance Management for the IBM i Enterprise Enforcive / Enterprise Security is the single most comprehensive and easy to use security and compliance
We begin with a number of definitions, and follow through to the conclusion of the installation.
Owl-Hosted Server Version 0.9x HOW TO Set up Owl using cpanel Introduction Much of the documentation for the installation of Owl Intranet Knowledgebase assumes a knowledge of servers, and that the installation
Parcelhub - Linnworks Custom Courier Integration Script
Parcelhub - Linnworks Custom Courier Integration Script What is it? When an order is processed using Linnworks, Linnworks has the ability to book a shipment and print shipping labels for that order. Linnworks
Deltek Touch Time & Expense for GovCon. User Guide for Triumph
Deltek Touch Time & Expense for GovCon User Guide for Triumph November 25, 2014 While Deltek has attempted to verify that the information in this document is accurate and complete, some typographical or
Installation and Administration Guide
Installation and Administration Guide Release 8 This installation guide will walk you through how to install and deploy Conga Composer, including recommended settings for the application. Contact Support:
on-hand viewer on iphone / ipod touch manual installation and configuration of an FTP server for Mac OS X to transfer data to on-hand viewer application on iphone / ipod touch table of contents 1. Introduction
