001: /***************************************************************
002: * This file is part of the [fleXive](R) project.
003: *
004: * Copyright (c) 1999-2007
005: * UCS - unique computing solutions gmbh (http://www.ucs.at)
006: * All rights reserved
007: *
008: * The [fleXive](R) project is free software; you can redistribute
009: * it and/or modify it under the terms of the GNU General Public
010: * License as published by the Free Software Foundation;
011: * either version 2 of the License, or (at your option) any
012: * later version.
013: *
014: * The GNU General Public License can be found at
015: * http://www.gnu.org/copyleft/gpl.html.
016: * A copy is found in the textfile GPL.txt and important notices to the
017: * license from the author are found in LICENSE.txt distributed with
018: * these libraries.
019: *
020: * This library is distributed in the hope that it will be useful,
021: * but WITHOUT ANY WARRANTY; without even the implied warranty of
022: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
023: * GNU General Public License for more details.
024: *
025: * For further information about UCS - unique computing solutions gmbh,
026: * please see the company website: http://www.ucs.at
027: *
028: * For further information about [fleXive](R), please see the
029: * project website: http://www.flexive.org
030: *
031: *
032: * This copyright notice MUST APPEAR in all copies of the file!
033: ***************************************************************/package com.flexive.war;
034:
035: import com.flexive.shared.exceptions.FxAccountInUseException;
036: import com.flexive.shared.exceptions.FxLoginFailedException;
037: import com.flexive.shared.exceptions.FxLogoutFailedException;
038: import com.flexive.shared.security.UserTicket;
039: import com.flexive.shared.tree.FxTemplateInfo;
040:
041: import javax.servlet.http.HttpServletRequest;
042: import java.util.Map;
043:
044: public interface FxRequest {
045:
046: // All recognized browsers
047: enum Browser {
048: KONQUEROR, IE, FIREFOX, MOZILLA, SAFARI, OPERA, UNKNOWN
049: }
050:
051: // All recognized operating systems
052: enum OperatingSystem {
053: WINDOWS, MAC, LINUX, UNIX, UNKNOWN
054: }
055:
056: /**
057: * The underlying request.
058: *
059: * @return the underlying request
060: */
061: HttpServletRequest getRequest();
062:
063: /**
064: * The time the request was started at.
065: *
066: * @return the time the request was started at.
067: */
068: long getRequestStartTime();
069:
070: /**
071: * The ticke of the user.
072: * <p/>
073: *
074: * @return The ticke of the user
075: */
076: UserTicket getUserTicket();
077:
078: /**
079: * Returns the division the request was started in.
080: *
081: * @return the division the request was started in
082: */
083: int getDivisionId();
084:
085: public FxTemplateInfo getTemplateInfo();
086:
087: public long getNodeId();
088:
089: public long[] getIdChain();
090:
091: /**
092: * Returns true if the given tree node id is part of the called url.
093: *
094: * @param nodeId the node to check for
095: * @return true if the given tree node id is active
096: */
097: public boolean treeNodeIsActive(long nodeId);
098:
099: /**
100: * Returns the operating system that generated the request.
101: *
102: * @return the operating system that generated the request
103: */
104: OperatingSystem getOperatingSystem();
105:
106: /**
107: * Returns the browser that generated the request.
108: *
109: * @return the browser that generated the request
110: */
111: Browser getBrowser();
112:
113: /**
114: * Returns the request URI without the context.
115: *
116: * @return the request URI without the context.
117: */
118: String getRequestURIWithoutContext();
119:
120: /**
121: * Tries to login a user.
122: * <p/>
123: * The next getUserTicket() call will return the new ticket.
124: *
125: * @param username the unique user name
126: * @param password the password
127: * @param takeOver the take over flag
128: * @throws com.flexive.shared.exceptions.FxLoginFailedException
129: * if the login failed
130: * @throws com.flexive.shared.exceptions.FxAccountInUseException
131: * if take over was false and the account is in use
132: */
133: void login(String username, String password, boolean takeOver)
134: throws FxLoginFailedException, FxAccountInUseException;
135:
136: /**
137: * Returns true if this request references the content editor.
138: *
139: * @return true if this request references the content editor
140: */
141: public boolean isContentEditor();
142:
143: /**
144: * Returns true if this request references the inline content editor.
145: *
146: * @return true if this request references the inline content editor.
147: */
148: public boolean isInlineContentEditor();
149:
150: public String getCharacterEncoding();
151:
152: public Map getParameterMap();
153:
154: /**
155: * Logout of the current user.
156: *
157: * @throws com.flexive.shared.exceptions.FxLogoutFailedException
158: * -
159: */
160: void logout() throws FxLogoutFailedException;
161:
162: public String getRequestURI();
163:
164: public StringBuffer getRequestURL();
165:
166: boolean isWebDavMethod();
167:
168: boolean isDynamicContent();
169:
170: public void setAttribute(String string, Object object);
171:
172: public Object getAttribute(String string);
173:
174: public void removeAttribute(String string);
175:
176: String getServletPath();
177:
178: javax.servlet.http.HttpSession getSession(boolean b);
179:
180: javax.servlet.http.HttpSession getSession();
181:
182: String getContextPath();
183:
184: // --
185: String getAuthType();
186:
187: String getMethod();
188:
189: String getPathInfo();
190:
191: String getQueryString();
192:
193: String getRemoteUser(); // TODO
194:
195: boolean isUserInRole(String string); // TODO
196:
197: java.security.Principal getUserPrincipal(); // TODO
198:
199: String getRequestedSessionId();
200:
201: boolean isRequestedSessionIdValid();
202:
203: boolean isRequestedSessionIdFromCookie();
204:
205: boolean isRequestedSessionIdFromURL();
206:
207: boolean isRequestedSessionIdFromUrl();
208:
209: String getRemoteHost();
210: }
|