Skip to content

Commit

Permalink
replace usage of constant string 'wosid' by WOApplication.application…
Browse files Browse the repository at this point in the history
…().sessionIdKey()
  • Loading branch information
darkv committed May 26, 2012
1 parent 19bfecb commit fc66771
Show file tree
Hide file tree
Showing 18 changed files with 165 additions and 117 deletions.
4 changes: 3 additions & 1 deletion Examples/Ajax/AjaxExample/Sources/PushExample.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.Set;

import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOApplication;
import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WOResponse;
Expand All @@ -20,7 +21,8 @@ public PushExample(WOContext context) {
}

public String url() {
return context().urlWithRequestHandlerKey(AjaxPushRequestHandler.AjaxCometRequestHandlerKey, "test", "wosid=" + session().sessionID());
return context().urlWithRequestHandlerKey(AjaxPushRequestHandler.AjaxCometRequestHandlerKey, "test",
WOApplication.application().sessionIdKey() + "=" + session().sessionID());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ HiddenID : WOGenericElement {
HiddenWOSID : WOGenericElement {
elementName = "input";
type = "hidden";
name = "wosid";
name = application.sessionIdKey;
value = session.sessionID;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ public WOResponse handleRequest(WORequest request) {
int streamLength = -1;

try {
String wosid = request.cookieValueForKey("wosid");
String sessionIdKey = WOApplication.application().sessionIdKey();
String sessionId = request.cookieValueForKey(sessionIdKey);
WOMultipartIterator multipartIterator = request.multipartIterator();
if (multipartIterator == null) {
response.appendContentString("Already Consumed!");
Expand All @@ -71,8 +72,8 @@ public WOResponse handleRequest(WORequest request) {
WOMultipartIterator.WOFormData formData = null;
while ((formData = multipartIterator.nextFormData()) != null) {
String name = formData.name();
if ("wosid".equals(name)) {
wosid = formData.formValue();
if (sessionIdKey.equals(name)) {
sessionId = formData.formValue();
}
else if ("id".equals(name)) {
uploadIdentifier = formData.formValue();
Expand All @@ -84,10 +85,10 @@ else if (formData.isFileUpload()) {
break;
}
}
context._setRequestSessionID(wosid);
context._setRequestSessionID(sessionId);
WOSession session = null;
if (context._requestSessionID() != null) {
session = WOApplication.application().restoreSessionWithID(wosid, context);
session = WOApplication.application().restoreSessionWithID(sessionId, context);
}
File tempFile = File.createTempFile("AjaxFileUpload", ".tmp", _tempFileFolder);
tempFile.deleteOnExit();
Expand Down
11 changes: 6 additions & 5 deletions Frameworks/Ajax/Ajax/Sources/er/ajax/AjaxFlexibleFileUpload.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.apache.log4j.Logger;

import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOApplication;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WOResponse;
import com.webobjects.foundation.NSArray;
Expand Down Expand Up @@ -77,7 +78,6 @@ public class AjaxFlexibleFileUpload extends AjaxFileUpload {

public static interface Keys {
public static final String name = "name";
public static final String wosid = "wosid";
public static final String selectFileLabel = "selectFileLabel";
public static final String cancelLabel = "cancelLabel";
public static final String clearLabel = "clearLabel";
Expand Down Expand Up @@ -150,12 +150,13 @@ public String ajaxUploadScript() {
}

/**
* Builds the array of required additional AjaxUpload data items (wosid, id).
* Builds the array of required additional AjaxUpload data items (<i>sessionIdKey</i>, id).
*
* @return array of required additional AjaxUpload data items (wosid, id).
* @return array of required additional AjaxUpload data items (<i>sessionIdKey</i>, id).
*/
protected NSArray<String> _ajaxUploadData() {
NSMutableArray<String> _data = new NSMutableArray<String>("wosid:'" + this.session().sessionID() + "'");
NSMutableArray<String> _data = new NSMutableArray<String>(WOApplication.application().sessionIdKey()
+ ":'" + this.session().sessionID() + "'");

_data.addObject("id:'" + id() + "'");

Expand Down Expand Up @@ -507,7 +508,7 @@ public String uploadName() {
* @return url sent to the iframe to cancel
*/
public String cancelUrl() {
NSDictionary<String,Boolean> queryParams = new NSDictionary<String,Boolean>(Boolean.FALSE, Keys.wosid);
NSDictionary<String,Boolean> queryParams = new NSDictionary<String,Boolean>(Boolean.FALSE, WOApplication.application().sessionIdKey());
String url = ERXWOContext._directActionURL(context(), "ERXDirectAction/closeHTTPSession", queryParams, ERXRequest.isRequestSecure(context().request()));
if (log.isDebugEnabled()) log.debug("URL: " + url);
return url;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,19 +196,20 @@ public WOResponse handleRequest(WORequest request) {
try {
String inputString = request.contentString();
JSONObject input = new JSONObject(inputString);
String wosid = request.cookieValueForKey("wosid");
if (wosid == null) {
String sessionIdKey = WOApplication.application().sessionIdKey();
String sessionId = request.cookieValueForKey(sessionIdKey);
if (sessionId == null) {
ERXMutableURL url = new ERXMutableURL();
url.setQueryParameters(request.queryString());
wosid = url.queryParameter("wosid");
if (wosid == null && input.has("wosid")) {
wosid = input.getString("wosid");
sessionId = url.queryParameter(sessionIdKey);
if (sessionId == null && input.has(sessionIdKey)) {
sessionId = input.getString(sessionIdKey);
}
}
context._setRequestSessionID(wosid);
context._setRequestSessionID(sessionId);
WOSession session = null;
if (context._requestSessionID() != null) {
session = WOApplication.application().restoreSessionWithID(wosid, context);
session = WOApplication.application().restoreSessionWithID(sessionId, context);
}
if (session != null) {
session.awake();
Expand Down Expand Up @@ -276,7 +277,7 @@ public WOResponse handleRequest(WORequest request) {
if (context._session() != null) {
WOSession contextSession = context._session();
// If this is a new session, then we have to force it to be a cookie session
if (wosid == null) {
if (sessionId == null) {
boolean storesIDsInCookies = contextSession.storesIDsInCookies();
try {
contextSession.setStoresIDsInCookies(true);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package er.ajax.json.client;

import com.webobjects.appserver.WOApplication;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WOResponse;

Expand Down Expand Up @@ -57,7 +58,8 @@ public void appendToResponse(WOResponse woresponse, WOContext wocontext) {

String queryString = null;
if (wocontext.request().sessionID() != null && wocontext.session().storesIDsInURLs()) {
queryString = "wosid=" + wocontext.request().sessionID();
String sessionIdKey = WOApplication.application().sessionIdKey();
queryString = sessionIdKey + "=" + wocontext.request().sessionID();
}

String componentName = jsonComponent();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Contents: WOComponentContent {

WOSID: WOHiddenField {
value = session.sessionID;
name = "wosid";
name = application.sessionIdKey;
}

FID: WOGenericElement {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ HiddenID : WOGenericElement {
HiddenWOSID : WOGenericElement {
elementName = "input";
type = "hidden";
name = "wosid";
name = application.sessionIdKey;
value = session.sessionID;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,14 @@ public WOResponse handleRequest(WORequest request) {
WOContext context = application.createContextForRequest(request);
WOResponse response = application.createResponseInContext(context);

String wosid = (String) request.formValueForKey("wosid");
if (wosid == null) {
wosid = request.cookieValueForKey("wosid");
String sessionIdKey = WOApplication.application().sessionIdKey();
String sessionId = (String) request.formValueForKey(sessionIdKey);
if (sessionId == null) {
sessionId = request.cookieValueForKey(sessionIdKey);
}
context._setRequestSessionID(wosid);
WOSession session = null;
context._setRequestSessionID(sessionId);
if (context._requestSessionID() != null) {
session = WOApplication.application().restoreSessionWithID(wosid, context);
WOApplication.application().restoreSessionWithID(sessionId, context);
}
try {
ERXDynamicURL url = new ERXDynamicURL(request._uriDecomposed());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import java.util.Arrays;
Expand All @@ -21,6 +22,7 @@

import org.apache.log4j.Logger;

import com.webobjects.appserver.WOApplication;
import com.webobjects.appserver.WOSession;
import com.webobjects.eoaccess.EOAttribute;
import com.webobjects.eoaccess.EODatabase;
Expand Down Expand Up @@ -76,6 +78,7 @@
import er.extensions.foundation.ERXArrayUtilities;
import er.extensions.foundation.ERXConfigurationManager;
import er.extensions.foundation.ERXFileUtilities;
import er.extensions.foundation.ERXMutableURL;
import er.extensions.foundation.ERXPatcher;
import er.extensions.foundation.ERXProperties;
import er.extensions.foundation.ERXRuntimeUtilities;
Expand Down Expand Up @@ -1091,20 +1094,46 @@ public static void addRandomizeDirectActionURL(StringBuffer daURL) {
daURL.append(r);
}
}

/**
* Adds the session ID (wosid) for a given session to a given url.
* @param url to add wosid form value to.
* @return url with the addition of wosid form value
* Adds the session ID for a given session to a given URL.
* @param url URL string to add session ID form value to.
* @param session session object
* @return URL with the addition of session ID form value
* @deprecated use {@link #addSessionIdFormValue(String, WOSession)}
*/
// FIXME: Should check to see if the wosid form value has already been set.
public static String addWosidFormValue(String url, WOSession s) {
String result= url;
if (result!=null && s!=null) {
result += ( result.indexOf("?") == -1 ? "?" : "&" ) + "wosid=" + s.sessionID();
} else {
_log.warn("not adding sid: url="+url+" session="+s);
}
return result;
@Deprecated
public static String addWosidFormValue(String url, WOSession session) {
return addSessionIdFormValue(url, session);
}

/**
* Adds the session ID for a given session to a given URL.
*
* @param urlString
* URL string to add session ID form value to
* @param session
* session object
* @return URL with the addition of session ID form value
*/
public static String addSessionIdFormValue(String urlString, WOSession session) {
if (urlString == null || session == null) {
_log.warn("not adding session ID: url=" + (urlString != null ? urlString : "<null>") + " session=" + (session != null ? session : "<null>"));
return urlString;
}
String sessionIdKey = WOApplication.application().sessionIdKey();
try {
ERXMutableURL url = new ERXMutableURL(urlString);
if (!url.containsQueryParameter(sessionIdKey)) {
url.setQueryParameter(sessionIdKey, session.sessionID());
}
return url.toExternalForm();
}
catch (MalformedURLException e) {
_log.error("invalid URL string: " + urlString, e);
}

return urlString;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,8 +222,9 @@ public ERXComponentActionRedirector(Restorable r) {
url = r.urlForCurrentState();
if(context.session().storesIDsInURLs()) {
String argsChar = url.indexOf("?") >= 0? "&" : "?";
if(url.indexOf("wosid=") < 0) {
url = url + argsChar + "wosid=" +sessionID;
String sessionIdKey = WOApplication.application().sessionIdKey();
if(url.indexOf(sessionIdKey + "=") < 0) {
url = url + argsChar + sessionIdKey + "=" +sessionID;
argsChar = "&";
}
if(url.indexOf("wocid=") < 0) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ protected WOResponse handle(WORequest request, DelayedRequest delayedRequest, St
String args = "id=" + id;
String sessionID = request.sessionID();
if (sessionID != null) {
args += "&wosid=" + sessionID;
args += "&" + WOApplication.application().sessionIdKey() + "=" + sessionID;
}
args += "&__start=" + delayedRequest.start().getTime();
args += "&__time=" + System.currentTimeMillis();
Expand Down Expand Up @@ -366,14 +366,15 @@ protected WOResponse createErrorResponse(WORequest request) {
* and you probably shouldn't do it either. The default implementation
* redirect to the entry.
*
* @param request
* @param request the request object
* @return 302 response
*/
protected WOResponse createStoppedResponse(WORequest request) {
final ERXApplication app = ERXApplication.erxApplication();
String args = (request.sessionID() != null ? "wosid=" + request.sessionID() : "");
String sessionIdKey = WOApplication.application().sessionIdKey();
String args = (request.sessionID() != null ? sessionIdKey + "=" + request.sessionID() : "");

String url = request.applicationURLPrefix() + "?" + args;
WOResponse result = new WOResponse();
ERXResponse result = new ERXResponse();
result.setHeader(url, "location");
result.setStatus(302);
return result;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -417,16 +417,17 @@ public NSDictionary cookieValues() {
* content even if the request is supposed to be streaming and thus
* very large. Will now return <code>false</code> if the request
* handler is streaming.
*
* @return <code>true</code> if the session ID can be obtained from the form values or a cookie.
*/
@Override
public boolean isSessionIDInRequest() {
ERXApplication app = (ERXApplication)WOApplication.application();

if (app.isStreamingRequestHandlerKey(requestHandlerKey())) {
return false;
} else {
return super.isSessionIDInRequest();
}
return super.isSessionIDInRequest();
}


Expand All @@ -435,27 +436,31 @@ public boolean isSessionIDInRequest() {
* content even if the request is supposed to be streaming and thus
* very large. Will now look for the session ID only in the cookie
* values.
*
* @param inCookiesFirst
* define if session ID should be searched first in cookie
*/
@Override
protected String _getSessionIDFromValuesOrCookie(boolean inCookiesFirst) {
ERXApplication app = (ERXApplication)WOApplication.application();
String sessionIdKey = WOApplication.application().sessionIdKey();

boolean wis = WOApplication.application().streamActionRequestHandlerKey().equals(requestHandlerKey());
boolean alternateStreaming = app.isStreamingRequestHandlerKey(requestHandlerKey());
boolean streaming = wis || alternateStreaming;

String sessionID = null;
if(inCookiesFirst) {
sessionID = cookieValueForKey("wosid");
sessionID = cookieValueForKey(sessionIdKey);
if(sessionID == null && !streaming) {
sessionID = stringFormValueForKey("wosid");
sessionID = stringFormValueForKey(sessionIdKey);
}
} else {
if(!streaming) {
sessionID = stringFormValueForKey("wosid");
sessionID = stringFormValueForKey(sessionIdKey);
}
if(sessionID == null) {
sessionID = cookieValueForKey("wosid");
sessionID = cookieValueForKey(sessionIdKey);
}
}
return sessionID;
Expand All @@ -464,6 +469,10 @@ protected String _getSessionIDFromValuesOrCookie(boolean inCookiesFirst) {
/**
* Utility method to set credentials for basic authorization.
*
* @param userName
* the user name
* @param password
* the password
*/
public void setCredentials(String userName, String password) {
String up = userName + ":" + password;
Expand Down
Loading

0 comments on commit fc66771

Please sign in to comment.