📄 http.java
字号:
STAFMarshallingContext mc = new STAFMarshallingContext();
List resultList = new ArrayList();
if (pResult.optionTimes(SESSION) > 0)
{
// Get resolved value for SESSION option and make sure it's an integer
STAFResult res = STAFUtil.resolveRequestVarAndCheckInt(
SESSION, pResult.optionValue(SESSION), sHandle, info.requestNumber);
if (res.rc != 0) return res;
int sessionId = Integer.parseInt(res.result);
WebSession session;
// Get the session
try
{
session = sessionList.getSession(sessionId);
}
catch (InvalidSessionIDException e)
{
return new STAFResult(STAFResult.DoesNotExist, e.getMessage());
}
if (pResult.optionTimes(DEFAULTHEADERS) > 0)
{
// LIST DEFAULTHEADERS
HashMap headers = session.getDefaultHeaders();
mc.setRootObject(headers);
return new STAFResult(STAFResult.Ok, mc.marshall());
}
else if (pResult.optionTimes(AUTHENTICATIONHOSTS) > 0)
{
// LIST AUTHENTICATIONHOSTS
HashMap authenticationSets = session.getAuthenticationSets();
Iterator it = authenticationSets.keySet().iterator();
while(it.hasNext())
resultList.add((String)it.next());
}
else if (pResult.optionTimes(FORMS) > 0)
{
// LIST FORMS
mc.setMapClassDefinition(fListFormMapClass);
HashMap[] list = session.listForms();
for (int i = 0; i < list.length; i++)
{
Map resultMap = fListFormMapClass.createInstance();
resultMap.put("formIndex", list[i].get(WebElement.INDEX));
String id = (String)list[i].get(WebElement.ID);
String name = (String)list[i].get(WebElement.NAME);
if (id != null && !id.equals(""))
resultMap.put("formID", id);
if (name != null && !name.equals(""))
resultMap.put("formName", name);
resultList.add(resultMap);
}
}
else if (pResult.optionTimes(LINKS) > 0)
{
// LIST LINKS
mc.setMapClassDefinition(fListLinkMapClass);
HashMap[] list = session.listLinks();
for (int i = 0; i < list.length; i++)
{
Map resultMap = fListLinkMapClass.createInstance();
resultMap.put("linkIndex", list[i].get(WebElement.INDEX));
String id = (String)list[i].get(WebElement.ID);
String name = (String)list[i].get(WebElement.NAME);
if (id != null && !id.equals(""))
resultMap.put("linkID", id);
if (name != null && !name.equals(""))
resultMap.put("linkName", name);
resultList.add(resultMap);
}
}
else if (pResult.optionTimes(COOKIES) > 0)
{
// LIST COOKIES
HashMap[] list = session.listCookies();
for (int i = 0; i < list.length; i++)
resultList.add(list[i].get(CookieAccess.NAME));
}
else if (pResult.optionTimes(FORMCONTROLS) > 0)
{
// LIST FORMCONTROLS
String id = "";
int idType = -1;
if (pResult.optionTimes(ID) > 0)
{
// Resolve the ID option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(ID), sHandle, info.requestNumber);
if (res.rc != 0) return res;
id = res.result;
idType = WebSession.ID_ID_TYPE;
}
else if (pResult.optionTimes(NAME) > 0)
{
// Resolve the NAME option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(NAME), sHandle, info.requestNumber);
if (res.rc != 0) return res;
id = res.result;
idType = WebSession.NAME_ID_TYPE;
}
else if (pResult.optionTimes(INDEX) > 0)
{
// Resolve the INDEX option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(INDEX), sHandle, info.requestNumber);
if (res.rc != 0) return res;
id = res.result;
idType = WebSession.INDEX_ID_TYPE;
}
if (id.equals("") && idType == -1)
{
id = "1";
idType = WebSession.INDEX_ID_TYPE;
}
try
{
HashMap data = session.summarizeForm(id, idType);
List controls = (List) data.get(WebForm.CONTROLS);
for (int i = 0; i < controls.size(); i++)
resultList.add(((Parameter)controls.get(i)).getKey());
}
catch (InvalidElementIDException e)
{
return new STAFResult(STAFResult.DoesNotExist, e.getMessage());
}
}
}
else
{
// LIST SESSIONS
mc.setMapClassDefinition(fListSessionMapClass);
HashMap[] list = sessionList.listSessions();
for (int i = 0; i < list.length; i++)
{
Map sessionMap = fListSessionMapClass.createInstance();
sessionMap.put("sessionID", list[i].get(WebSession.ID));
String url = (String)list[i].get(WebSession.URL);
String title = (String)list[i].get(WebSession.TITLE);
if (url != null && !url.equals(""))
sessionMap.put("url", url);
if (title != null && !title.equals(""))
sessionMap.put("title", title);
resultList.add(sessionMap);
}
}
mc.setRootObject(resultList);
return new STAFResult(STAFResult.Ok, mc.marshall());
}
/*****************************************************************************/
/* */
/* Method: handleSet */
/* Description: performs the desired set interaction */
/* Parameters: info - request info passed to acceptRequest */
/* Returns: STAFResult.OK */
/* */
/*****************************************************************************/
private STAFResult handleSet(STAFServiceInterfaceLevel30.RequestInfo info)
throws STAFException
{
// Verify the requester has at least trust level 3
STAFResult trustResult = STAFUtil.validateTrust(
3, fServiceName, "SET", fLocalMachineName, info);
if (trustResult.rc != STAFResult.Ok) return trustResult;
// Parse the result
STAFCommandParseResult pResult = setParser.parse(info.request);
if (pResult.rc != 0)
{
return new STAFResult(STAFResult.InvalidRequestString,
pResult.errorBuffer);
}
// Get resolved value for SESSION option and make sure it's an integer
STAFResult res = STAFUtil.resolveRequestVarAndCheckInt(
SESSION, pResult.optionValue(SESSION), sHandle, info.requestNumber);
if (res.rc != 0) return res;
int sessionId = Integer.parseInt(res.result);
WebSession session;
// Get the session
try
{
session = sessionList.getSession(sessionId);
}
catch (InvalidSessionIDException e)
{
return new STAFResult(STAFResult.DoesNotExist, e.getMessage());
}
if (!session.isOwner(info.stafInstanceUUID))
{
// Verify the requester has at least trust level 4 since not the
// session owner
trustResult = STAFUtil.validateTrust(
4, fServiceName, "SET", fLocalMachineName, info);
if (trustResult.rc != STAFResult.Ok) return trustResult;
}
String result = "";
if (pResult.optionTimes(DEFAULTHEADER) > 0)
{
// Resolve the DEFAULTHEADER option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(DEFAULTHEADER), sHandle, info.requestNumber);
if (res.rc != 0) return res;
String key = res.result;
// Resolve the VALUE option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(VALUE), sHandle, info.requestNumber);
if (res.rc != 0) return res;
String value = res.result;
session.setDefaultHeader(key, value);
}
else if (pResult.optionTimes(AUTHENTICATIONHOST) > 0)
{
// Resolve the AUTHENTICATIONHOST option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(AUTHENTICATIONHOST), sHandle,
info.requestNumber);
if (res.rc != 0) return res;
String key = res.result;
// Resolve the AUTHENTICATIONUSER option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(AUTHENTICATIONUSER), sHandle,
info.requestNumber);
if (res.rc != 0) return res;
String user = res.result;
String pwd = "";
if (pResult.optionTimes(AUTHENTICATIONPWD) > 0)
{
// Resolve the AUTHENTICATIONPWD option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(AUTHENTICATIONPWD), sHandle,
info.requestNumber);
if (res.rc != 0) return res;
// Remove privacy delimiters. Can remove since never show
// true value of a authentication password on a query request.
pwd = STAFUtil.removePrivacyDelimiters(res.result);
}
String domain = "";
if (pResult.optionTimes(AUTHENTICATIONDOMAIN) > 0)
{
// Resolve the AUTHENTICATIONDOMAIN option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(AUTHENTICATIONDOMAIN), sHandle,
info.requestNumber);
if (res.rc != 0) return res;
domain = res.result;
}
session.setAuthenticationSet(key, user, pwd, domain);
}
else if (pResult.optionTimes(NOAUTOREDIRECT) > 0)
{
session.setDefaultFollowRedirect(false);
}
else if (pResult.optionTimes(AUTOREDIRECT) > 0)
{
session.setDefaultFollowRedirect(true);
}
else if (pResult.optionTimes(COOKIE) > 0)
{
if (pResult.optionTimes(POLICY) > 0)
{
// Resolve the POLICY option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(POLICY), sHandle, info.requestNumber);
if (res.rc != 0) return res;
String policy = res.result;
session.setCookiePolicy(policy);
}
// Resolve the NAME option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(NAME), sHandle, info.requestNumber);
if (res.rc != 0) return res;
String name = res.result;
if (pResult.optionTimes(VALUE) > 0)
{
// Resolve the VALUE option value
res = STAFUtil.resolveRequestVar(
pResult.optionValue(VALUE), sHandle, info.requestNumber);
if (res.rc != 0) return res;
String value = res.result;
try
{
session.setCookieValue(name, value);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -