tigase.vhosts
Class VHostItem

java.lang.Object
  extended by tigase.db.comp.RepositoryItemAbstract
      extended by tigase.vhosts.VHostItem
All Implemented Interfaces:
RepositoryItem

public class VHostItem
extends RepositoryItemAbstract

Objects of this class represent virtual host with all hosts configuration settings. In most cases simple domain name string is not enough to deal with the virtual host. VHost can be enabled/disabled. Can be available to selected server components only and so on. Therefore every time there is a detailed information needed for a vhost this classed must be used. This class has it's own XML representation which can be used for creating an instance of the class or can be exported to the XML form for permanent storage:

 
   
   
 
From the init.property file it is also possible to set additional parameters for the vhost. By default everything is enabled and max accounts set to unlimited. In the example below we configure 2 domains: devel.tigase.org and test.tigase.org. For the first domain there are no additional settings, hence the domain has everything on by default, whereas the second has everything switched off and max user accounts set to 100.
 --virt-hosts = devel.tigase.org,test.tigase.org:-anon:-register:max-users=100
 
It also possible to set forwarding for the domain:
 --virt-hosts = test.tigase.org:pres-forw=lpart@domain/res:mess-forw=lpart@domain/res
 
Please note, forwarding address set this way cannot contain any of characters: [,:=] The order features are set for domain is unimportant. Created: 22 Nov 2008

Version:
$Rev$
Author:
Artur Hefczyc

Field Summary
static String ANONYMOUS_ENABLED_ATT
          This is an attribute name for storing information whether anonymous user can login for this domain.
static String ANONYMOUS_ENABLED_LABEL
          Field description
static String COMPONENTS_ELEM
          Element name for the VHostItem XML child keeping list of the server component which can handle packets for this domain.
static String DOMAIN_FILTER_POLICY_ATT
          Field description
static String DOMAIN_FILTER_POLICY_LABEL
          Field description
protected static DomainFilterPolicy DOMAIN_FILTER_POLICY_PROP_DEF
          Field description
protected static String DOMAIN_FILTER_POLICY_PROP_KEY
          Field description
static String ENABLED_ATT
          This is an attribute name for storing information whether the VHost is enabled or disabled.
static String ENABLED_LABEL
          Field description
static String HOSTNAME_ATT
          This is an attribute name for storing the VHost name.
static String HOSTNAME_LABEL
          Field description
static String MAX_USERS_NUMBER_ATT
          This is an attribute name for storing the maximum number of users for this virtual domain.
static String MAX_USERS_NUMBER_LABEL
          Field description
static String MESSAGE_FORWARD_ADDRESS_ATT
          Field description
static String MESSAGE_FORWARD_ADDRESS_LABEL
          Field description
static String OTHER_PARAMS_ELEM
          Element name for the VHostItem XML child keeping all the extra parameters for the domain.
static String OTHER_PARAMS_LABEL
          Field description
static String PRESENCE_FORWARD_ADDRESS_ATT
          Field description
static String PRESENCE_FORWARD_ADDRESS_LABEL
          Field description
static String REGISTER_ENABLED_ATT
          This is an attribute name for storing information whether user registration is allowed for this domain.
static String REGISTER_ENABLED_LABEL
          Field description
static String S2S_SECRET_ATT
          Field description
static String S2S_SECRET_LABEL
          Field description
protected static String S2S_SECRET_PROP_DEF
          Field description
protected static String S2S_SECRET_PROP_KEY
          Field description
static String TLS_REQUIRED_ATT
          Field description
static String TLS_REQUIRED_LABEL
          Field description
protected static Boolean VHOST_ANONYMOUS_ENABLED_PROP_DEF
          Field description
protected static String VHOST_ANONYMOUS_ENABLED_PROP_KEY
          Field description
protected static String[] VHOST_COMPONENTS_PATH
          Field description
static String VHOST_ELEM
          Element name to for the VHostItem XML storage.
protected static Long VHOST_MAX_USERS_PROP_DEF
          Field description
protected static String VHOST_MAX_USERS_PROP_KEY
          Field description
protected static String VHOST_MESSAGE_FORWARD_PROP_DEF
          Field description
protected static String VHOST_MESSAGE_FORWARD_PROP_KEY
          Field description
protected static String[] VHOST_OTHER_PARAMS_PATH
          Field description
protected static String VHOST_PRESENCE_FORWARD_PROP_DEF
          Field description
protected static String VHOST_PRESENCE_FORWARD_PROP_KEY
          Field description
protected static Boolean VHOST_REGISTER_ENABLED_PROP_DEF
          Field description
protected static String VHOST_REGISTER_ENABLED_PROP_KEY
          Field description
protected static Boolean VHOST_TLS_REQUIRED_PROP_DEF
          Field description
protected static String VHOST_TLS_REQUIRED_PROP_KEY
          Field description
 
Fields inherited from class tigase.db.comp.RepositoryItemAbstract
ADMINS_ATT, ADMINS_LABEL, OWNER_ATT, OWNER_LABEL
 
Constructor Summary
VHostItem()
          Constructs ...
VHostItem(tigase.xml.Element elem)
          The constructor creates the VHostItem instance from a given XML element.
VHostItem(tigase.xmpp.JID vhost)
          The constructor creates the VHostItem instance for a given domain name with default values for all other parameters.
VHostItem(String vhost)
          The constructor creates the VHostItem instance for a given domain name with default values for all other parameters.
 
Method Summary
 void addCommandFields(Packet packet)
          Method description
 String[] getComps()
          Returns an array with the server components names which should process packets sent to this domain or null (default) if there is no specific component assigned to this domain.
 DomainFilterPolicy getDomainFilter()
          Method description
 String getElemName()
          Method description
 String getKey()
          Method description
 long getMaxUsersNumber()
          This method returns the maximum number of user accounts allowed for this domain.
 tigase.xmpp.JID getMessageForward()
           
 tigase.xmpp.JID getMessageForwardAddress()
          Method description
 String getOtherDomainParams()
          This method allows to access the virtual domain other configuration parameters.
 tigase.xmpp.JID getPresenceForward()
           
 tigase.xmpp.JID getPresenceForwardAddress()
          Method description
 String getS2sSecret()
          Method description
 VHostItem getUnmodifiableVHostItem()
          Method description
 tigase.xmpp.JID getVhost()
          This method return a virtual host name as a String value.
 void initFromCommand(Packet packet)
          Method description
 void initFromElement(tigase.xml.Element elem)
          Method description
 void initFromPropertyString(String propString)
          Method description
 boolean isAnonymousEnabled()
          This method checks whether anonymous login is enabled for this domain.
 boolean isEnabled()
          Checks whether this domain is set as enabled or not.
 boolean isRegisterEnabled()
          The method checks whether user registration is enabled for this domain or not.
 boolean isTlsRequired()
          The method returns TLS required settings for the vhost.
 void setAnonymousEnabled(boolean value)
          This method allows to enable or disable anonymous logins for this domain.
 void setComps(String[] comps)
          Sets an array with the server component names by which packets to this domain can be processed.
 void setDomainFilter(DomainFilterPolicy domainFilter)
          Method description
 void setEnabled(boolean value)
          This method allows to enable or disable local domain.
 void setMaxUsersNumber(long maxUsersNumber)
          This method allows to set the maximum number of user accounts allowed for this domain.
 void setMessageForward(tigase.xmpp.JID messageForward)
           
 void setOtherDomainParams(String otherParams)
          This method allows to set extra configuration parameters for the virtual domain.
 void setPresenceForward(tigase.xmpp.JID presenceForward)
           
 void setRegisterEnabled(boolean value)
          This method allows to enable or disable user account registration for this domain.
 void setS2sSecret(String s2sSecret)
          Method description
 void setTlsRequired(boolean value)
          The method sets TLS required property for the vhost.
 void setVHost(tigase.xmpp.JID vhost)
          Method description
 void setVHost(String vhost)
          Method description
 tigase.xml.Element toElement()
          The method exports the VHostItem object to XML representation.
 String toPropertyString()
          Method description
 String toString()
          Method description
 
Methods inherited from class tigase.db.comp.RepositoryItemAbstract
getAdmins, getOwner, isAdmin, isOwner, setAdmins, setOwner
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ANONYMOUS_ENABLED_ATT

public static final String ANONYMOUS_ENABLED_ATT
This is an attribute name for storing information whether anonymous user can login for this domain.

See Also:
Constant Field Values

ANONYMOUS_ENABLED_LABEL

public static final String ANONYMOUS_ENABLED_LABEL
Field description

See Also:
Constant Field Values

COMPONENTS_ELEM

public static final String COMPONENTS_ELEM
Element name for the VHostItem XML child keeping list of the server component which can handle packets for this domain. In most cases this element should be empty.

See Also:
Constant Field Values

DOMAIN_FILTER_POLICY_ATT

public static final String DOMAIN_FILTER_POLICY_ATT
Field description

See Also:
Constant Field Values

DOMAIN_FILTER_POLICY_LABEL

public static final String DOMAIN_FILTER_POLICY_LABEL
Field description

See Also:
Constant Field Values

ENABLED_ATT

public static final String ENABLED_ATT
This is an attribute name for storing information whether the VHost is enabled or disabled.

See Also:
Constant Field Values

ENABLED_LABEL

public static final String ENABLED_LABEL
Field description

See Also:
Constant Field Values

HOSTNAME_ATT

public static final String HOSTNAME_ATT
This is an attribute name for storing the VHost name.

See Also:
Constant Field Values

HOSTNAME_LABEL

public static final String HOSTNAME_LABEL
Field description

See Also:
Constant Field Values

MAX_USERS_NUMBER_ATT

public static final String MAX_USERS_NUMBER_ATT
This is an attribute name for storing the maximum number of users for this virtual domain.

See Also:
Constant Field Values

MAX_USERS_NUMBER_LABEL

public static final String MAX_USERS_NUMBER_LABEL
Field description

See Also:
Constant Field Values

MESSAGE_FORWARD_ADDRESS_ATT

public static final String MESSAGE_FORWARD_ADDRESS_ATT
Field description

See Also:
Constant Field Values

MESSAGE_FORWARD_ADDRESS_LABEL

public static final String MESSAGE_FORWARD_ADDRESS_LABEL
Field description

See Also:
Constant Field Values

OTHER_PARAMS_ELEM

public static final String OTHER_PARAMS_ELEM
Element name for the VHostItem XML child keeping all the extra parameters for the domain. This is a container for future extensions and parameters which are not defined yet.

See Also:
Constant Field Values

OTHER_PARAMS_LABEL

public static final String OTHER_PARAMS_LABEL
Field description

See Also:
Constant Field Values

PRESENCE_FORWARD_ADDRESS_ATT

public static final String PRESENCE_FORWARD_ADDRESS_ATT
Field description

See Also:
Constant Field Values

PRESENCE_FORWARD_ADDRESS_LABEL

public static final String PRESENCE_FORWARD_ADDRESS_LABEL
Field description

See Also:
Constant Field Values

REGISTER_ENABLED_ATT

public static final String REGISTER_ENABLED_ATT
This is an attribute name for storing information whether user registration is allowed for this domain.

See Also:
Constant Field Values

REGISTER_ENABLED_LABEL

public static final String REGISTER_ENABLED_LABEL
Field description

See Also:
Constant Field Values

S2S_SECRET_ATT

public static final String S2S_SECRET_ATT
Field description

See Also:
Constant Field Values

S2S_SECRET_LABEL

public static final String S2S_SECRET_LABEL
Field description

See Also:
Constant Field Values

TLS_REQUIRED_ATT

public static final String TLS_REQUIRED_ATT
Field description

See Also:
Constant Field Values

TLS_REQUIRED_LABEL

public static final String TLS_REQUIRED_LABEL
Field description

See Also:
Constant Field Values

VHOST_ELEM

public static final String VHOST_ELEM
Element name to for the VHostItem XML storage.

See Also:
Constant Field Values

DOMAIN_FILTER_POLICY_PROP_KEY

protected static final String DOMAIN_FILTER_POLICY_PROP_KEY
Field description

See Also:
Constant Field Values

S2S_SECRET_PROP_DEF

protected static final String S2S_SECRET_PROP_DEF
Field description


S2S_SECRET_PROP_KEY

protected static final String S2S_SECRET_PROP_KEY
Field description

See Also:
Constant Field Values

VHOST_ANONYMOUS_ENABLED_PROP_KEY

protected static final String VHOST_ANONYMOUS_ENABLED_PROP_KEY
Field description

See Also:
Constant Field Values

VHOST_ANONYMOUS_ENABLED_PROP_DEF

protected static final Boolean VHOST_ANONYMOUS_ENABLED_PROP_DEF
Field description


VHOST_MAX_USERS_PROP_KEY

protected static final String VHOST_MAX_USERS_PROP_KEY
Field description

See Also:
Constant Field Values

VHOST_MAX_USERS_PROP_DEF

protected static final Long VHOST_MAX_USERS_PROP_DEF
Field description


VHOST_MESSAGE_FORWARD_PROP_DEF

protected static final String VHOST_MESSAGE_FORWARD_PROP_DEF
Field description


VHOST_MESSAGE_FORWARD_PROP_KEY

protected static final String VHOST_MESSAGE_FORWARD_PROP_KEY
Field description

See Also:
Constant Field Values

VHOST_PRESENCE_FORWARD_PROP_DEF

protected static final String VHOST_PRESENCE_FORWARD_PROP_DEF
Field description


VHOST_PRESENCE_FORWARD_PROP_KEY

protected static final String VHOST_PRESENCE_FORWARD_PROP_KEY
Field description

See Also:
Constant Field Values

VHOST_REGISTER_ENABLED_PROP_KEY

protected static final String VHOST_REGISTER_ENABLED_PROP_KEY
Field description

See Also:
Constant Field Values

VHOST_REGISTER_ENABLED_PROP_DEF

protected static final Boolean VHOST_REGISTER_ENABLED_PROP_DEF
Field description


VHOST_TLS_REQUIRED_PROP_KEY

protected static final String VHOST_TLS_REQUIRED_PROP_KEY
Field description

See Also:
Constant Field Values

VHOST_TLS_REQUIRED_PROP_DEF

protected static final Boolean VHOST_TLS_REQUIRED_PROP_DEF
Field description


DOMAIN_FILTER_POLICY_PROP_DEF

protected static final DomainFilterPolicy DOMAIN_FILTER_POLICY_PROP_DEF
Field description


VHOST_OTHER_PARAMS_PATH

protected static final String[] VHOST_OTHER_PARAMS_PATH
Field description


VHOST_COMPONENTS_PATH

protected static final String[] VHOST_COMPONENTS_PATH
Field description

Constructor Detail

VHostItem

public VHostItem()
Constructs ...


VHostItem

public VHostItem(tigase.xml.Element elem)
The constructor creates the VHostItem instance from a given XML element. Please refer to the class documentation for more details of the XML element.

Parameters:
elem - is an Element object with virtual domain settings.

VHostItem

public VHostItem(tigase.xmpp.JID vhost)
The constructor creates the VHostItem instance for a given domain name with default values for all other parameters. By the default all domain parameters are set to true.

Parameters:
vhost - is a String value with a domain name.

VHostItem

public VHostItem(String vhost)
          throws tigase.util.TigaseStringprepException
The constructor creates the VHostItem instance for a given domain name with default values for all other parameters. By the default all domain parameters are set to true.

Parameters:
vhost - is a String value with a domain name.
Throws:
tigase.util.TigaseStringprepException - if the provided string causes stringprep processing errors.
Method Detail

addCommandFields

public void addCommandFields(Packet packet)
Method description

Specified by:
addCommandFields in interface RepositoryItem
Overrides:
addCommandFields in class RepositoryItemAbstract
Parameters:
packet -

initFromCommand

public void initFromCommand(Packet packet)
Method description

Specified by:
initFromCommand in interface RepositoryItem
Overrides:
initFromCommand in class RepositoryItemAbstract
Parameters:
packet -

initFromElement

public void initFromElement(tigase.xml.Element elem)
Method description

Specified by:
initFromElement in interface RepositoryItem
Overrides:
initFromElement in class RepositoryItemAbstract
Parameters:
elem -

initFromPropertyString

public void initFromPropertyString(String propString)
Method description

Parameters:
propString -

toElement

public tigase.xml.Element toElement()
The method exports the VHostItem object to XML representation.

Specified by:
toElement in interface RepositoryItem
Overrides:
toElement in class RepositoryItemAbstract
Returns:
an Element object with vhost information.

toPropertyString

public String toPropertyString()
Method description

Returns:

toString

public String toString()
Method description

Overrides:
toString in class Object
Returns:

getComps

public String[] getComps()
Returns an array with the server components names which should process packets sent to this domain or null (default) if there is no specific component assigned to this domain.

Returns:
a String[] object with server component names.

getDomainFilter

public DomainFilterPolicy getDomainFilter()
Method description

Returns:

getElemName

public String getElemName()
Method description

Specified by:
getElemName in class RepositoryItemAbstract
Returns:

getKey

public String getKey()
Method description

Returns:

getMaxUsersNumber

public long getMaxUsersNumber()
This method returns the maximum number of user accounts allowed for this domain. This parameter is to allow for limiting number of users on per domain basis.

Returns:
a long value indicating the maximum number of user accounts allowed for this domain.

getMessageForward

public tigase.xmpp.JID getMessageForward()
Returns:
the messageForward

getMessageForwardAddress

public tigase.xmpp.JID getMessageForwardAddress()
Method description

Returns:

getOtherDomainParams

public String getOtherDomainParams()
This method allows to access the virtual domain other configuration parameters. This is future feature API and it is not used right now. It allows to access configuration parameters which are not specified at the time of API definition.

Returns:
a String value with domain extra parameters.

getPresenceForward

public tigase.xmpp.JID getPresenceForward()
Returns:
the presenceForward

getPresenceForwardAddress

public tigase.xmpp.JID getPresenceForwardAddress()
Method description

Returns:

getS2sSecret

public String getS2sSecret()
Method description

Returns:

getUnmodifiableVHostItem

public VHostItem getUnmodifiableVHostItem()
Method description

Returns:

getVhost

public tigase.xmpp.JID getVhost()
This method return a virtual host name as a String value.

Returns:
a String value with the virtual domain name.

isAnonymousEnabled

public boolean isAnonymousEnabled()
This method checks whether anonymous login is enabled for this domain. This is the domain own configuration parameter which allows to disable anonymous logins on per domain basis.

Returns:
a boolean value indicating whether anonymous logins are allowed for this domain.

isEnabled

public boolean isEnabled()
Checks whether this domain is set as enabled or not. This is domain own configuration parameter which allows to temporarly disable domain so packets for this domain are not processed normally. Instead the server returns an error.

Returns:
a boolean value true if the domain is enabled and false if the domain is disabled.

isRegisterEnabled

public boolean isRegisterEnabled()
The method checks whether user registration is enabled for this domain or not. This is the domain own configuration parameter which allows to disable user accounts registration via XMPP per domain basis.

Returns:
a boolean value indicating whether user account registration is allowed for this domain.

isTlsRequired

public boolean isTlsRequired()
The method returns TLS required settings for the vhost.

Returns:
a boolean value whether TLS is required for the vhost or not.

setAnonymousEnabled

public void setAnonymousEnabled(boolean value)
This method allows to enable or disable anonymous logins for this domain. By default anonymous logins are enabled.

Parameters:
value -

setComps

public void setComps(String[] comps)
Sets an array with the server component names by which packets to this domain can be processed. Every local domain will be handled by VHostListener which returns true for handlesLocalDomains() method call and by all components set via this method.

Parameters:
comps - is an String[] array with server component names.

setDomainFilter

public void setDomainFilter(DomainFilterPolicy domainFilter)
Method description

Parameters:
domainFilter -

setEnabled

public void setEnabled(boolean value)
This method allows to enable or disable local domain. If the domain is disabled packets sent for this domain are not processed normally, instead the server returns an error to the sender. Domain is enabled by default.

Parameters:
value -

setMaxUsersNumber

public void setMaxUsersNumber(long maxUsersNumber)
This method allows to set the maximum number of user accounts allowed for this domain. The default value of this parameter is: 0L.

Parameters:
maxUsersNumber - is a long value specifying the maximum number of user accounts allowed for this domain.

setMessageForward

public void setMessageForward(tigase.xmpp.JID messageForward)
Parameters:
messageForward - the messageForward to set

setOtherDomainParams

public void setOtherDomainParams(String otherParams)
This method allows to set extra configuration parameters for the virtual domain. This is future feature API and it is not used right now. It allows to access configuration parameters which are not specified at the time of API definition.

Parameters:
otherParams - is a String value with domain extra parameters.

setPresenceForward

public void setPresenceForward(tigase.xmpp.JID presenceForward)
Parameters:
presenceForward - the presenceForward to set

setRegisterEnabled

public void setRegisterEnabled(boolean value)
This method allows to enable or disable user account registration for this domain. By default user account registration is enabled.

Parameters:
value -

setS2sSecret

public void setS2sSecret(String s2sSecret)
Method description

Parameters:
s2sSecret -

setTlsRequired

public void setTlsRequired(boolean value)
The method sets TLS required property for the vhost. By default TLS is not required.

Parameters:
value - is a boolean parameter specifying whether TLS is required for the virtual domain.

setVHost

public void setVHost(String vhost)
              throws tigase.util.TigaseStringprepException
Method description

Parameters:
vhost -
Throws:
tigase.util.TigaseStringprepException

setVHost

public void setVHost(tigase.xmpp.JID vhost)
Method description

Parameters:
vhost -


Copyright © 2013 Tigase. All rights reserved.