blob: d425b5fb946db20934d4edafe42f40635044c7a8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package flex.messaging.services.http;
/**
* External Proxy Settings for a proxy service.
*/
public class ExternalProxySettings
{
/** @exclude **/
public static final int DEFAULT_PROXY_PORT = 80;
/** @exclude **/
public static final String PORT = "port";
/** @exclude **/
public static final String EXTERNAL_PROXY = "external-proxy";
/** @exclude **/
public static final String SERVER = "server";
/** @exclude **/
public static final String NT_DOMAIN = "nt-domain";
/** @exclude **/
public static final String USERNAME = "username";
/** @exclude **/
public static final String PASSWORD = "password";
private static final String HTTP = "http://";
private String proxyServer;
private int proxyPort = DEFAULT_PROXY_PORT;
private String username;
private String password;
private String ntDomain;
/**
* Creates a default <code>ExternalProxySettings</code> instance.
*/
public ExternalProxySettings()
{
}
/**
* Returns the <code>server</code> property.
*
* @return the property as a string
*/
public String getProxyServer()
{
return proxyServer;
}
/**
* Sets the <code>server</code> property.
*
* @param s The IP or server name of the proxy server.
*/
public void setProxyServer(String s)
{
if (s != null)
{
if (s.endsWith("/"))
s = s.substring(0, s.length() - 1);
boolean hasProtocol = s.indexOf("://") != -1;
if (!hasProtocol && isDotNet())
s = HTTP + s;
if (!isDotNet() && hasProtocol)
{
if (s.startsWith(HTTP))
s = s.substring(HTTP.length());
else
throw new IllegalArgumentException("A protocol cannot be specified for the proxy element: " + s);
// FIXME: Should we throw an exception if a port is specified in the proxy server name?
}
}
proxyServer = s;
}
/**
* Returns the <code>port</code> property.
*
* @return the <code>port</code>
*/
public int getProxyPort()
{
return proxyPort;
}
/**
* Sets the <code>port</code> property. Default is 80.
*
* @param p The port number.
*/
public void setProxyPort(int p)
{
if (p > 0)
{
proxyPort = p;
}
}
/**
* Returns the <code>username</code> property.
*
* @return the <code>username</code>
*/
public String getUsername()
{
return username;
}
/**
* Sets the <code>username</code> property.
*
* @param username The user name for logging into the proxy server.
*/
public void setUsername(String username)
{
this.username = username;
}
/**
* Returns the <code>password</code> property.
*
* @return the <code>password</code>
*/
public String getPassword()
{
return password;
}
/**
* Sets the <code>password</code> property.
*
* @param password The password for loggin into the proxy server.
*/
public void setPassword(String password)
{
this.password = password;
}
/**
* Returns the <code>nt-domain</code> property.
*
* @return a string containing the <code>nt-domain</code>
*/
public String getNTDomain()
{
return ntDomain;
}
/**
* Sets the <code>nt-domain</code> property.
*
* @param ntDomain The NT domain for the proxy server.
*/
public void setNTDomain(String ntDomain)
{
this.ntDomain = ntDomain;
}
/**
*
*/
public static boolean isDotNet()
{
return System.getProperty("flex.platform.CLR") != null;
}
}