Mercurial > hg > digilib-old
diff servlet/src/digilib/auth/AuthOpsImpl.java @ 1:0ff3ede32060
Initial revision
author | robcast |
---|---|
date | Thu, 17 Jan 2002 15:25:46 +0100 |
parents | |
children | 3b8797fc3e90 9cedd170b581 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/servlet/src/digilib/auth/AuthOpsImpl.java Thu Jan 17 15:25:46 2002 +0100 @@ -0,0 +1,77 @@ +/* AuthOps -- Authentication class implementation + + Digital Image Library servlet components + + Copyright (C) 2001, 2002 Robert Casties (robcast@mail.berlios.de) + + This program 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 version. + + Please read license.txt for the full details. A copy of the GPL + may be found at http://www.gnu.org/copyleft/lgpl.html + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +*/ + +package digilib.auth; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; + +import digilib.*; + +public abstract class AuthOpsImpl implements AuthOps { + + protected Utils util; + + public AuthOpsImpl() { + util = new Utils(); + try { + init(); + } catch (AuthOpException e) { + } + } + + public AuthOpsImpl(Utils u) { + util = u; + try { + init(); + } catch (AuthOpException e) { + } + } + + public boolean isAuthRequired(String filepath, HttpServletRequest request) throws AuthOpException { + // check permissions + List rolesRequired = rolesForPath(filepath, request); + return (rolesRequired != null); + } + + public boolean isAuthorized(String filepath, HttpServletRequest request) throws AuthOpException { + List rolesAllowed = rolesForPath(filepath, request); + return isRoleAuthorized(rolesAllowed, request); + } + + public boolean isRoleAuthorized(List roles, HttpServletRequest request) { + ListIterator r = roles.listIterator(); + String s = ""; + while (r.hasNext()) { + s = (String)r.next(); + util.dprintln(5, "Testing role: "+s); + if (request.isUserInRole(s)) { + util.dprintln(5, "Role Authorized"); + return true; + } + } + return false; + } + + public abstract void init() throws AuthOpException; + + public abstract List rolesForPath(String filepath, HttpServletRequest request) throws AuthOpException; + +}