Search in sources :

Example 11 with ProxyData

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);
}
Also used : QueryImpl(lucee.runtime.type.QueryImpl) ProxyData(lucee.runtime.net.proxy.ProxyData) RemoteClient(lucee.runtime.config.RemoteClient) Query(lucee.runtime.type.Query)

Example 12 with ProxyData

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);
    }
}
Also used : ProxyData(lucee.runtime.net.proxy.ProxyData) StructImpl(lucee.runtime.type.StructImpl) RemoteClientImpl(lucee.runtime.config.RemoteClientImpl) RemoteClient(lucee.runtime.config.RemoteClient) ProxyDataImpl(lucee.runtime.net.proxy.ProxyDataImpl) Struct(lucee.runtime.type.Struct) RemoteClientTask(lucee.runtime.spooler.remote.RemoteClientTask)

Example 13 with ProxyData

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);
    }
}
Also used : Element(org.w3c.dom.Element) Resource(lucee.commons.io.res.Resource) ArrayList(java.util.ArrayList) ProxyDataImpl(lucee.runtime.net.proxy.ProxyDataImpl) lucee.aprint(lucee.aprint) Struct(lucee.runtime.type.Struct) StructImpl(lucee.runtime.type.StructImpl) ProxyData(lucee.runtime.net.proxy.ProxyData) SpoolerEngineImpl(lucee.runtime.spooler.SpoolerEngineImpl)

Example 14 with ProxyData

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();
}
Also used : ProxyData(lucee.runtime.net.proxy.ProxyData) URL(java.net.URL)

Example 15 with ProxyData

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();
}
Also used : ProxyData(lucee.runtime.net.proxy.ProxyData) URL(java.net.URL)

Aggregations

ProxyData (lucee.runtime.net.proxy.ProxyData)15 URL (java.net.URL)5 Struct (lucee.runtime.type.Struct)5 StructImpl (lucee.runtime.type.StructImpl)5 ApplicationException (lucee.runtime.exp.ApplicationException)4 ProxyDataImpl (lucee.runtime.net.proxy.ProxyDataImpl)4 IOException (java.io.IOException)3 Resource (lucee.commons.io.res.Resource)3 RemoteClient (lucee.runtime.config.RemoteClient)3 QueryImpl (lucee.runtime.type.QueryImpl)3 InputStream (java.io.InputStream)2 ArrayList (java.util.ArrayList)2 Header (lucee.commons.net.http.Header)2 PageException (lucee.runtime.exp.PageException)2 Query (lucee.runtime.type.Query)2 URLResolver (lucee.runtime.util.URLResolver)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 EOFException (java.io.EOFException)1 FileInputStream (java.io.FileInputStream)1 FileNotFoundException (java.io.FileNotFoundException)1