annotate servlet2/src/main/java/digilib/servlet/DocumentBean.java @ 1108:214cac7e5628

oerks, overlooked css file again
author hertzhaft
date Sat, 27 Oct 2012 00:12:36 +0200
parents 7779b37d1d05
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
903
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
1 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
2 * DocumentBean -- Access control bean for JSP
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
3 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
4 * Digital Image Library servlet components
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
5 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
6 * Copyright (C) 2001, 2002, 2003 Robert Casties (robcast@mail.berlios.de)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
7 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify it under
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
9 * the terms of the GNU General Public License as published by the Free Software
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
10 * Foundation; either version 2 of the License, or (at your option) any later
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
11 * version.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
12 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
13 * Please read license.txt for the full details. A copy of the GPL may be found
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
14 * at http://www.gnu.org/copyleft/lgpl.html
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
15 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License along with
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
17 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
18 * Place, Suite 330, Boston, MA 02111-1307 USA
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
19 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
20 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
21
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
22 package digilib.servlet;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
23
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
24 import java.util.List;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
25
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
26 import javax.servlet.ServletConfig;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
27 import javax.servlet.ServletContext;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
28 import javax.servlet.ServletException;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
29 import javax.servlet.http.HttpServletRequest;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
30 import javax.servlet.http.HttpServletResponse;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
31
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
32 import org.apache.log4j.Logger;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
33
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
34 import digilib.auth.AuthOpException;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
35 import digilib.auth.AuthOps;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
36 import digilib.io.DocuDirCache;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
37 import digilib.io.DocuDirectory;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
38 import digilib.io.FileOps.FileClass;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
39 import digilib.io.ImageInput;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
40 import digilib.io.ImageSet;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
41 import digilib.util.ImageSize;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
42
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
43 public class DocumentBean {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
44
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
45 // general logger
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
46 private static Logger logger = Logger.getLogger("digilib.docubean");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
47
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
48 // AuthOps object to check authorization
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
49 private AuthOps authOp;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
50
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
51 // use authorization database
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
52 private boolean useAuthentication = true;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
53
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
54 // path to add for authenticated access
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
55 private String authURLPath = "";
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
56
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
57 // DocuDirCache
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
58 private DocuDirCache dirCache = null;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
59
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
60 // DigilibConfiguration object
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
61 private DigilibServletConfiguration dlConfig;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
62
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
63 // DigilibRequest object
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
64 private DigilibServletRequest dlRequest = null;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
65
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
66 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
67 * Constructor for DocumentBean.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
68 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
69 public DocumentBean() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
70 logger.debug("new DocumentBean");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
71 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
72
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
73 public DocumentBean(ServletConfig conf) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
74 logger.debug("new DocumentBean");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
75 try {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
76 setConfig(conf);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
77 } catch (Exception e) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
78 logger.fatal("ERROR: Unable to read config: ", e);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
79 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
80 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
81
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
82 public void setConfig(ServletConfig conf) throws ServletException {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
83 logger.debug("setConfig");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
84 // get our ServletContext
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
85 ServletContext context = conf.getServletContext();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
86 // see if there is a Configuration instance
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
87 dlConfig = (DigilibServletConfiguration) context
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
88 .getAttribute("digilib.servlet.configuration");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
89 if (dlConfig == null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
90 // create new Configuration
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
91 throw new ServletException("ERROR: No configuration!");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
92 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
93
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
94 // get cache
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
95 dirCache = (DocuDirCache) dlConfig.getValue("servlet.dir.cache");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
96
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
97 /*
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
98 * authentication
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
99 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
100 useAuthentication = dlConfig.getAsBoolean("use-authorization");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
101 authOp = (AuthOps) dlConfig.getValue("servlet.auth.op");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
102 authURLPath = dlConfig.getAsString("auth-url-path");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
103 if (useAuthentication && (authOp == null)) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
104 throw new ServletException(
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
105 "ERROR: use-authorization configured but no AuthOp!");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
106 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
107 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
108
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
109 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
110 * check if the request must be authorized to access filepath
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
111 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
112 public boolean isAuthRequired(DigilibServletRequest request)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
113 throws AuthOpException {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
114 logger.debug("isAuthRequired");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
115 return useAuthentication ? authOp.isAuthRequired(request) : false;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
116 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
117
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
118 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
119 * check if the request is allowed to access filepath
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
120 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
121 public boolean isAuthorized(DigilibServletRequest request) throws AuthOpException {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
122 logger.debug("isAuthorized");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
123 return useAuthentication ? authOp.isAuthorized(request) : true;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
124 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
125
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
126 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
127 * return a list of authorization roles needed for request to access the
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
128 * specified path
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
129 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
130 public List<String> rolesForPath(DigilibServletRequest request) throws AuthOpException {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
131 logger.debug("rolesForPath");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
132 return useAuthentication ? authOp.rolesForPath(request) : null;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
133 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
134
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
135 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
136 * check request authorization against a list of roles
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
137 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
138 public boolean isRoleAuthorized(List<String> roles, DigilibServletRequest request) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
139 logger.debug("isRoleAuthorized");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
140 return useAuthentication ? authOp.isRoleAuthorized(roles, request)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
141 : true;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
142 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
143
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
144 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
145 * check for authenticated access and redirect if necessary
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
146 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
147 public boolean doAuthentication(HttpServletResponse response)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
148 throws Exception {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
149 logger.debug("doAuthenication-Method");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
150 return doAuthentication(dlRequest, response);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
151 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
152
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
153 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
154 * check for authenticated access and redirect if necessary
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
155 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
156 public boolean doAuthentication(DigilibServletRequest request,
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
157 HttpServletResponse response) throws Exception {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
158 logger.debug("doAuthentication");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
159 if (!useAuthentication) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
160 // shortcut if no authentication
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
161 return true;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
162 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
163 // check if we are already authenticated
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
164 if (((HttpServletRequest) request.getServletRequest()).getRemoteUser() == null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
165 logger.debug("unauthenticated so far");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
166 // if not maybe we must?
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
167 if (isAuthRequired(request)) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
168 logger.debug("auth required, redirect");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
169 // we are not yet authenticated -> redirect
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
170 response.sendRedirect(authURLPath
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
171 + ((HttpServletRequest) request.getServletRequest())
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
172 .getServletPath()
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
173 + "?"
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
174 + ((HttpServletRequest) request.getServletRequest())
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
175 .getQueryString());
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
176 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
177 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
178 return true;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
179 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
180
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
181 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
182 * Sets the current DigilibRequest. Also completes information in the request.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
183 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
184 * @param dlRequest
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
185 * The dlRequest to set.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
186 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
187 public void setRequest(DigilibServletRequest dlRequest) throws Exception {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
188 this.dlRequest = dlRequest;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
189 if (dirCache == null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
190 return;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
191 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
192 String fn = dlRequest.getFilePath();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
193 // get information about the file
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
194 ImageSet fileset = (ImageSet) dirCache.getFile(fn, dlRequest
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
195 .getAsInt("pn"), FileClass.IMAGE);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
196 if (fileset == null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
197 return;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
198 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
199 // add file name
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
200 dlRequest.setValue("img.fn", fileset);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
201 // add dpi
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
202 dlRequest.setValue("img.dpix", new Double(fileset.getResX()));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
203 dlRequest.setValue("img.dpiy", new Double(fileset.getResY()));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
204 // get number of pages in directory
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
205 DocuDirectory dd = dirCache.getDirectory(fn);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
206 if (dd != null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
207 // add pt
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
208 dlRequest.setValue("pt", dd.size());
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
209 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
210 // get original pixel size
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
211 ImageInput origfile = fileset.getBiggest();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
212 // check image for size (TODO: just if mo=hires?)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
213 ImageSize pixsize = origfile.getSize();
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
214 if (pixsize != null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
215 // add pixel size
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
216 dlRequest.setValue("img.pix_x", new Integer(pixsize.getWidth()));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
217 dlRequest.setValue("img.pix_y", new Integer(pixsize.getHeight()));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
218 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
219 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
220
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
221 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
222 * get the first page number in the directory (not yet functional)
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
223 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
224 public int getFirstPage(DigilibServletRequest request) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
225 logger.debug("getFirstPage");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
226 return 1;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
227 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
228
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
229 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
230 * get the number of pages/files in the directory
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
231 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
232 public int getNumPages() throws Exception {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
233 return getNumPages(dlRequest);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
234 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
235
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
236 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
237 * get the number of image pages/files in the directory
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
238 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
239 public int getNumPages(DigilibServletRequest request) throws Exception {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
240 return getNumPages(request, FileClass.IMAGE);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
241 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
242
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
243 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
244 * get the number of pages/files of type fc in the directory
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
245 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
246 public int getNumPages(DigilibServletRequest request, FileClass fc) throws Exception {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
247 logger.debug("getNumPages");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
248 DocuDirectory dd = (dirCache != null) ? dirCache.getDirectory(request
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
249 .getFilePath()) : null;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
250 if (dd != null) {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
251 return dd.size(fc);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
252 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
253 return 0;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
254 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
255
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
256 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
257 * Returns the dlConfig.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
258 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
259 * @return DigilibConfiguration
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
260 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
261 public DigilibServletConfiguration getDlConfig() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
262 return dlConfig;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
263 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
264
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
265 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
266 * returns if the zoom area in the request can be moved
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
267 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
268 * @return
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
269 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
270 public boolean canMoveRight() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
271 float ww = dlRequest.getAsFloat("ww");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
272 float wx = dlRequest.getAsFloat("wx");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
273 return (ww + wx < 1.0);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
274 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
275
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
276 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
277 * returns if the zoom area in the request can be moved
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
278 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
279 * @return
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
280 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
281 public boolean canMoveLeft() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
282 float ww = dlRequest.getAsFloat("ww");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
283 float wx = dlRequest.getAsFloat("wx");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
284 return ((ww < 1.0) && (wx > 0));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
285 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
286
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
287 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
288 * returns if the zoom area in the request can be moved
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
289 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
290 * @return
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
291 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
292 public boolean canMoveUp() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
293 float wh = dlRequest.getAsFloat("wh");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
294 float wy = dlRequest.getAsFloat("wy");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
295 return ((wh < 1.0) && (wy > 0));
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
296 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
297
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
298 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
299 * returns if the zoom area in the request can be moved
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
300 *
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
301 * @return
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
302 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
303 public boolean canMoveDown() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
304 float wh = dlRequest.getAsFloat("wh");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
305 float wy = dlRequest.getAsFloat("wy");
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
306 return (wh + wy < 1.0);
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
307 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
308
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
309 /**
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
310 * @return Returns the dlRequest.
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
311 */
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
312 public DigilibServletRequest getRequest() {
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
313 return dlRequest;
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
314 }
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
315
7779b37d1d05 refactored into maven modules per servlet type.
robcast
parents:
diff changeset
316 }