On
Apache Tomcat courses, I find myself explaining "single login" models and on some
Java courses I explain single threaded models. In both cases, there are times that newcomers to the technologies ask "does it matter".
Answer - for a small and quiet application suite, probably not - but as the application suite grows, a single login to cover all applications is a boon to your users, and in contrast the single threaded model should be
avoided as it will limit traffic - keeping users waiting at the "starting gate" until the previous visitor to the application has completed his current interaction.
We have developed a number of applications for internal use here at Well House Consultants and Well House Manor over the years that rely on staff members logging in to get [full] use of the application code, and I am in process of applying a single login model to them retrospectively ... since they're internal, I'm afraid I can't publish log in details to give you a demonstration, but I can give you some pointers.
• 1. We're noting logins at the start of each of the applications via a common set of PHP functions that we have written and include in each application:
pwtest to see if the user is already logged in, and return account info
pwcheck to check if a user name and password pair are valid
pwlogin to log a user in
pwlogout to log a user out
• 2. On the exit from each application, any session is destroyed but the longer term login cookie is retained
• 3. On the user selecting a general logout button, session cookies for all applications grouped under the single login facility are destroyed in order to avoid any security holes being left open.
• 4. Cookies for the single common login are specifically set up for the root directory or any folder below it so that they will be seen by all the sharing applications, and are initially configured to allow a user to remain logged in for a period of rather longer that a regular session, but not for months or years! |
What applications are we serving with the system so far?
Our
Staff Resources Front Page (where extra links are provided for staff who are logged in)
Our
hotel room availability page (if you're not logged in, you just get a room status report and an invitation to book. When logged in, we can see details of room allocation right down to the staff member on duty being given a checklist of anticipated arrival times!)
Our new
incident book system through which we report anything from breakages to notes of customer preferences between ourselves - the public facing pages are read only, and only show items we have chosen to mark "public".
Our wiki
(sample page) that is extensively used for both internal and
customer facing pages that change frequently.
Our
traffic monitor (last 5 minutes) and
most popular pages (last 24 hours) reports reveal more information to logged in staff
And our
security monitor page - when logged in suitably, certain team members can view the web cams. If not logged in, You'll see a display of some static photographs instead.
(written 2008-01-04, updated 2008-01-08)
2295
Associated topics are indexed under
H112 - PHP - Further Web Page and Network Handling [4070] Passing variable between PHP pages - hidden fields, cookies and sessions - (2013-04-26)
[3918] Multiple page web applications - maintaining state - PHP - (2012-11-10)
[3568] Telling which ServerAlias your visitor used - useful during merging domains - (2012-01-04)
[3540] Easy session example in PHP - keeping each customers data apart - (2011-12-06)
[3432] 3 digit HTTP status codes - what are they, which are most common, which should be a concern? - (2011-09-11)
[3036] Sending out an email containing HTML from within a PHP page - (2010-11-07)
[2918] Downloading a report from the web for further local analysis - (2010-08-13)
[2729] Uploading a document or image to its own URL via a browser - (2010-04-18)
[2679] How to build a test harness into your PHP - (2010-03-16)
[2632] Shipping a test harness with your class in PHP - (2010-02-12)
[1549] http, https and ajp - comparison and choice - (2008-02-22)
[1518] Downloading data for use in Excel (from PHP / MySQL) - (2008-01-25)
[1515] Keeping staff up to date on hotel room status - (2008-01-22)
[1505] Script to present commonly used images - PHP - (2008-01-13)
[1496] PHP / Web 2 logging - (2008-01-06)
[1485] Copyright and theft of images, bandwidth and members. - (2007-12-26)
[1379] Simple page password protection - PHP - (2007-10-04)
[1355] .php or .html extension? Morally Static Pages - (2007-09-17)
[1210] PHP header() function - uses and new restrictions - (2007-05-30)
[1187] Updating a page strictly every minute (PHP, Perl) - (2007-05-14)
[1183] Improving searches - from OR to AND? - (2007-05-11)
[1114] PHP Image upload script - (2007-03-21)
[1009] Passing GET parameters through Apache mod_rewrite - (2006-12-27)
[936] Global, Superglobal, Session variables - scope and persistance in PHP - (2006-11-21)
[904] Of course I'll tell you by email - (2006-10-25)
[847] Image maps for navigation - a straightforward example - (2006-08-28)
[789] Hot answers in PHP - (2006-07-02)
[767] Finding the language preference of a web site visitor - (2006-06-18)
[675] Adding PHP tags to an old cgi program - (2006-04-08)
[603] PHP - setting sort order with an associative array - (2006-02-13)
[565] Using PHP to output images, XML, Style sheets, etc - (2006-01-15)
[542] Morning image, afternoon image - (2005-12-26)
[537] Daily Image Santafied - (2005-12-22)
[484] Setting the file name for a downloaded document - (2005-11-03)
[451] Accessing a page via POST from within a PHP script - (2005-09-26)
[443] Server side scripting of styles to suit the browser - (2005-09-12)
[425] Caching an XML feed - (2005-08-26)
[410] Reading a news or blog feed (RSS) in your PHP page - (2005-08-12)
[376] What brings people to my web site? - (2005-07-13)
[372] Time calculation in PHP - (2005-07-08)
[356] Sudoku helper or sudoku cheat - (2005-06-23)
[345] Spotting a denial of service attack - (2005-06-12)
[314] What language is this written in? - (2005-05-17)
[220] When to use Frames - (2005-02-19)
H202 - PHP - Case Study [2051] A Presentation about our company - web and PHP - (2009-02-23)
J906 - Java - Servlets in More Detail [3293] Distributing the server load - yet ensuring that each user return to the same system (Apache httpd and Tomcat) - (2011-05-18)
[3044] Changing a Servlet - more that just editing and compiling - (2010-11-12)
[2717] The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11)
[2652] Reading and writing cookies in Java Servlets and JSPs - (2010-02-26)
[2183] Servlet life cycle, and Java Servlet variable scope - (2009-05-16)
[1909] javax.servlet cannot be resolved - how to solve - (2008-11-26)
[1550] Java (JSP and Servlet examples) live on our server - (2008-02-23)
[479] New servlet from old - (2005-10-28)
5607
Some other Articles
Climate change, renewable resources and paper v plasticJava is a dynamic language .... (and comparison)Training Season Starts again!Single login and single threaded models - Java and PHPA time to update picturesComparison - cellpadding versus cellspacingWell House Consultants Training and Hotel - 2008 newsApple Mac Operating System OS X - code names and version numbersSoftware to record day to day events and keep an action list