use of lucee.runtime.net.proxy.ProxyData in project Lucee by lucee.
the class Admin method doGetRemoteClients.
private void doGetRemoteClients() throws PageException {
RemoteClient[] clients = config.getRemoteClients();
RemoteClient client;
ProxyData pd;
lucee.runtime.type.Query qry = new QueryImpl(new String[] { "label", "usage", "securityKey", "adminPassword", "serverUsername", "serverPassword", "type", "url", "proxyServer", "proxyUsername", "proxyPassword", "proxyPort" }, clients.length, "query");
int row = 0;
for (int i = 0; i < clients.length; i++) {
client = clients[i];
pd = client.getProxyData();
row = i + 1;
qry.setAt("label", row, client.getLabel());
qry.setAt("usage", row, client.getUsage());
qry.setAt("securityKey", row, client.getSecurityKey());
qry.setAt("adminPassword", row, client.getAdminPassword());
qry.setAt("ServerUsername", row, client.getServerUsername());
qry.setAt("ServerPassword", row, client.getServerPassword());
qry.setAt("type", row, client.getType());
qry.setAt("url", row, client.getUrl());
qry.setAt("proxyServer", row, pd == null ? "" : pd.getServer());
qry.setAt("proxyUsername", row, pd == null ? "" : pd.getUsername());
qry.setAt("proxyPassword", row, pd == null ? "" : pd.getPassword());
qry.setAt("proxyPort", row, pd == null ? "" : Caster.toString(pd.getPort()));
}
pageContext.setVariable(getString("admin", action, "returnVariable"), qry);
}
use of lucee.runtime.net.proxy.ProxyData in project Lucee by lucee.
the class Admin method doVerifyRemoteClient.
private void doVerifyRemoteClient() throws PageException {
// SNSN
/*
* SerialNumber sn = config.getSerialNumber(); if(sn.getVersion()==SerialNumber.VERSION_COMMUNITY) throw new
* SecurityException("can not verify remote client with "+sn.getStringVersion()+" version of Lucee");
*/
ProxyData pd = null;
String proxyServer = getString("proxyServer", null);
if (!StringUtil.isEmpty(proxyServer)) {
String proxyUsername = getString("proxyUsername", null);
String proxyPassword = getString("proxyPassword", null);
int proxyPort = getInt("proxyPort", -1);
pd = new ProxyDataImpl();
pd.setServer(proxyServer);
if (!StringUtil.isEmpty(proxyUsername))
pd.setUsername(proxyUsername);
if (!StringUtil.isEmpty(proxyPassword))
pd.setPassword(proxyPassword);
if (proxyPort != -1)
pd.setPort(proxyPort);
}
RemoteClient client = new RemoteClientImpl(getString("admin", action, "label"), type == TYPE_WEB ? "web" : "server", getString("admin", action, "url"), getString("serverUsername", null), getString("serverPassword", null), getString("admin", action, "adminPassword"), pd, getString("admin", action, "securityKey"), getString("admin", action, "usage"));
Struct attrColl = new StructImpl();
attrColl.setEL("action", "connect");
try {
new RemoteClientTask(null, client, attrColl, getCallerId(), "synchronisation").execute(config);
} catch (Throwable t) {
ExceptionUtil.rethrowIfNecessary(t);
throw Caster.toPageException(t);
}
}
use of lucee.runtime.net.proxy.ProxyData in project Lucee by lucee.
the class XMLConfigWebFactory method loadRemoteClient.
private static void loadRemoteClient(ConfigServerImpl configServer, ConfigImpl config, Document doc) {
boolean hasAccess = ConfigWebUtil.hasAccess(config, SecurityManagerImpl.TYPE_REMOTE);
// SNSN
// RemoteClientUsage
// boolean hasCS=configServer!=null;
Element _clients = getChildByName(doc.getDocumentElement(), "remote-clients");
// usage
String strUsage = getAttr(_clients, "usage");
Struct sct;
if (!StringUtil.isEmpty(strUsage))
// config.setRemoteClientUsage(toStruct(strUsage));
sct = toStruct(strUsage);
else
sct = new StructImpl();
// TODO make this generic
if (configServer != null) {
String sync = Caster.toString(configServer.getRemoteClientUsage().get("synchronisation", ""), "");
if (!StringUtil.isEmpty(sync)) {
sct.setEL("synchronisation", sync);
}
}
config.setRemoteClientUsage(sct);
// max-threads
int maxThreads = Caster.toIntValue(getAttr(_clients, "max-threads"), -1);
if (maxThreads < 1 && configServer != null) {
SpoolerEngineImpl engine = (SpoolerEngineImpl) configServer.getSpoolerEngine();
if (engine != null)
maxThreads = engine.getMaxThreads();
}
if (maxThreads < 1)
maxThreads = 20;
// directory
Resource file = ConfigWebUtil.getFile(config.getRootDirectory(), _clients.getAttribute("directory"), "client-task", config.getConfigDir(), FileUtil.TYPE_DIR, config);
config.setRemoteClientDirectory(file);
Element[] clients;
Element client;
if (!hasAccess)
clients = new Element[0];
else
clients = getChildren(_clients, "remote-client");
java.util.List<RemoteClient> list = new ArrayList<RemoteClient>();
for (int i = 0; i < clients.length; i++) {
client = clients[i];
// type
String type = getAttr(client, "type");
if (StringUtil.isEmpty(type))
type = "web";
// url
String url = getAttr(client, "url");
String label = getAttr(client, "label");
if (StringUtil.isEmpty(label))
label = url;
String sUser = getAttr(client, "server-username");
String sPass = ConfigWebUtil.decrypt(getAttr(client, "server-password"));
String aPass = ConfigWebUtil.decrypt(getAttr(client, "admin-password"));
String aCode = ConfigWebUtil.decrypt(getAttr(client, "security-key"));
// if(aCode!=null && aCode.indexOf('-')!=-1)continue;
String usage = getAttr(client, "usage");
if (usage == null)
usage = "";
String pUrl = getAttr(client, "proxy-server");
int pPort = Caster.toIntValue(getAttr(client, "proxy-port"), -1);
String pUser = getAttr(client, "proxy-username");
String pPass = ConfigWebUtil.decrypt(getAttr(client, "proxy-password"));
ProxyData pd = null;
if (!StringUtil.isEmpty(pUrl, true)) {
pd = new ProxyDataImpl();
pd.setServer(pUrl);
if (!StringUtil.isEmpty(pUser)) {
pd.setUsername(pUser);
pd.setPassword(pPass);
}
if (pPort > 0)
pd.setPort(pPort);
}
list.add(new RemoteClientImpl(label, type, url, sUser, sPass, aPass, pd, aCode, usage));
}
if (list.size() > 0)
config.setRemoteClients(list.toArray(new RemoteClient[list.size()]));
else
config.setRemoteClients(new RemoteClient[0]);
// init spooler engine
Resource dir = config.getRemoteClientDirectory();
if (dir != null && !dir.exists())
dir.mkdirs();
if (config.getSpoolerEngine() == null) {
config.setSpoolerEngine(new SpoolerEngineImpl(config, dir, "Remote Client Spooler", config.getLog("remoteclient"), maxThreads));
} else {
SpoolerEngineImpl engine = (SpoolerEngineImpl) config.getSpoolerEngine();
engine.setConfig(config);
engine.setLog(config.getLog("remoteclient"));
engine.setPersisDirectory(dir);
engine.setMaxThreads(maxThreads);
}
}
use of lucee.runtime.net.proxy.ProxyData in project Lucee by lucee.
the class HTTPResource method getStatusCode.
private int getStatusCode() throws IOException {
if (http == null) {
URL url = new URL(provider.getProtocol(), data.host, data.port, data.path);
ProxyData pd = data.hasProxyData() ? data.proxyData : ProxyDataImpl.NO_PROXY;
return HTTPEngine.head(url, data.username, data.password, _getTimeout(), true, null, data.userAgent, pd, null).getStatusCode();
}
return http.getStatusCode();
}
use of lucee.runtime.net.proxy.ProxyData in project Lucee by lucee.
the class HTTPResource method getContentType.
public ContentType getContentType() throws IOException {
if (http == null) {
URL url = new URL(provider.getProtocol(), data.host, data.port, data.path);
ProxyData pd = data.hasProxyData() ? data.proxyData : ProxyDataImpl.NO_PROXY;
return HTTPEngine.head(url, data.username, data.password, _getTimeout(), true, null, data.userAgent, pd, null).getContentType();
}
return http.getContentType();
}
Aggregations