Skip to content

GuideConfigurationServer

Kurt Stam edited this page Feb 2, 2014 · 27 revisions

jUDDI Server Configuration (juddiv3.xml)

jUDDI will look for a juddiv3.xml file on the root of the classpath. In the juddiv3.war you can find it in juddiv3.war/WEB_INF/classes/juddiv3.xml.

Since 3.2 the jUDDI server now uses an XML file for configuration. Previous versions uses a properties file.
Important
When referring to configuration 'properties', we are really referencing the XPath to specified setting.

Authentication

Table 1. Authentication properties that can be referenced in the juddiv3.xml file
Property Name Description Required Default Value or [Example Value]

juddi/auth/authenticator/class

The jUDDI authenticator class to use. See Chapter <add ref> of the Userguide for the choices provided.

N

org.apache.juddi.v3.auth.JUDDIAuthenticator

juddi/auth/Inquiry

This flag determines whether authentication (the presence of a getAuthToken) is required on queries invoking the Inquiry API. By default, jUDDI sets this to false for ease of use.

N

false

juddi/auth/token/Timeout

Time in minutes to expire tokes after inactivity.

N

15

juddi/auth/token/Expiration

As of 3.1.5 Duration of time for tokens to expire, regardless of inactivity.

N

15

juddi/auth/token/enforceSameIPRule

As of 3.2 This setting will enable or disable the auth token check to ensure that auth tokens can only be used from the same IP address that they were issued to..

N

true

Startup

Table 2. Startup properties that can be referenced in the juddiv3.xml file
Property Name Description Required Default Value or [Example Value]

juddi/server/baseurl

Token that can be accessed in accessPointURLs and resolved at runtime. Currently this is only used during the Installation process (seeding root data)

N

http://localhost:8080

juddi/root/publisher

The username for the jUDDI root publisher. This is usually just set to "root".

N

root

juddi/seed/always

Forces seeding of the jUDDI data. This will re-apply all files with the exception of the root data files. Note that this can lead to losing data that was added to the entities that are re-seeded, since data is not merged.

N

false

juddi/server/name

This token is referenced in the install data. Note that you can use any tokens, and that their values can be set here or as system parameters..

N

false

juddi/server/port

This token is referenced in the install data. Note that you can use any tokens, and that their values can be set here or as system parameters..

N

false

juddi/nodeId

The Node ID uniquely identifies this server. Use caution when changing the Node ID after jUDDI has been started, you may not be able to edit any existing entities! ..

N

uddi:juddi.apache.org:node1

juddi//load/install/data

This property allows you to cancel loading of the jUDDI install data.

N

false

juddi/locale

The default local to use. This currently is not used.

N

en_US

juddi/operatorEmailAddress

The UDDI Operator Contact Email Address. This currently is not used.

N

[email protected]

juddi/persistenceunit.name

The persistence name for the jUDDI database that is specified in the persistence.xml file.

N

juddiDatabase

juddi/configuration/reload/delay

The time in milliseconds in which juddiv3.xmlis polled for changes.

N

5000

Caution
Take caution in changing the jUDDI Node ID. If jUDDI has already been started at least once and the Node ID is changed, an existing records will not be editable. If you want to change from the default value, do so before you first start jUDDI by editing the configuration file.

Email

Table 3. As of 3.1.5, jUDDI supports Email delivery options for Subscription API functions. Email properties can be referenced in the juddiv3.xml file
Property Name Description Required Default Value or [Example Value]

juddi/mail/smtp/from

The Operator’s Email address

Y

[[email protected]]

juddi/mail/smtp/host

The hostname of the SMTP server

Y

[localhost]

juddi/mail/smtp/port

The portname of the SMTP server

Y

[25]

juddi/mail/smtp/socketFactory.class

If set, specifies the name of a class that implements the javax.net.SocketFactory interface. This class will be used to create SMTP sockets.

N

juddi/mail/smtp/socketFactory/fallback

If set to true, failure to create a socket using the specified socket factory class will cause the socket to be created using the java.net.Socket class. Defaults to true.

N

true

juddi/mail/smtp/starttls/enable

f true, enables the use of the STARTTLS command (if supported by the server) to switch the connection to a TLS-protected connection before issuing any login commands. Note that an appropriate trust store must configured so that the client will trust the server’s certificate. Defaults to false.

N

false

juddi/mail/smtp/socketFactory/port

Specifies the port to connect to when using the specified socket factory. If not set, the default port will be used.

N

[465]

juddi/mail/smtp/auth

If true, attempt to authenticate the user using the AUTH command. Defaults to false.

N

[false]

juddi/mail/smtp/user

Username used to authenticate to the SMTP server

Y, if juddi/mail/smtp/auth is true

[[email protected]]

juddi/mail/smtp/password

Username used to authenticate to the SMTP server

Y, if juddi/mail/smtp/auth is true

[secret]

juddi/mail/smtp/password@encrypted

If the password is encrypted, the setting juddi/cryptor is the Cryptographic provider used to decrypt at runtime.

Y, if juddi/mail/smtp/auth is true

false

Query Properties

Table 4. Query properties that can be referenced in the juddiv3.xml file
Property Name Description Required Default Value or [Example Value]

juddi/maxBusinessesPerPublisher

The maximum number of UDDI Businesses that can be registered per publisher. A value of '-1' indicates any number of businesses is allowed (These values can be overridden at the individual publisher level)

N

-1

juddi/maxServicesPerBusiness

The maximum number of UDDI BusinessServices allowed per Business. A value of '-1' indicates any number of artifacts is valid (These values can be # overridden at the individual publisher level).

N

-1

juddi/maxBindingsPerService

The maximum number of UDDI TemplateBindings allowed per BusinessService. A value of '-1' indicates any number of artifacts is valid (These values can be overridden at the individual publisher level).

N

-1

juddi/maxTModelsPerPublisher

The maximum number of TModels allowed per publisher. A value of '-1' indicates any number of artifacts is valid (These values can be overridden at the individual publisher level).

N

-1

juddi/maxInClause

The maximum number of "IN" clause parameters. Some RDMBS limit the number of parameters allowed in a SQL "IN" clause.

Y

[1000]

juddi/maxNameElementsAllowed

The maximum name size and maximum number of name elements allows in several of the FindXxxx and SaveXxxx UDDI functions

N

[5]

juddi/maxNameLength

The maximum name size of name elements

N

[255]

juddi/maxRows

The maximum number of rows returned in a find_* operation. Each call can set this independently, but this property defines a global maximum. This is related to the maxInClause setting (the same?).

N

1000

RMI Proxy

These properties are used to bring up RMI server socket. The settings allow for registering this service to JNDI.

RMI Proxy properties that can be referenced in the juddiv3.xml file and is only used by RMITransport.

Property Name Description Required Default Value or [Example Value]

juddi/proxy/factory/initial

JNDI Contect Facory

N

[org.jnp.interfaces.NamingContextFactory]

juddi/proxy/provider/url

JNDI Provider Address

N

[jnp://localhost:1099]

juddi/proxy/factory/url/pkg

JNDI Naming Convention

N

[org.jboss.naming]

Key Generation and Cryptography

Table 5. UDDI Key generation properties that can be referenced in the juddiv3.xml file.
Property Name Description Required Default Value or [Example Value]

juddi/cryptor

jUDDI Cryptor implementation class that jUDDI will use to encrypt and decrypt password settings

N

org.apache.juddi.cryptor.DefaultCryptor

juddi/keygenerator

Key generator implementation that jUDDI will use to create UDDI keys if no key is passed in by the user.

N

org.apache.juddi.keygen.KeyGenerator

_juddi/uuidgen _

UUID generator implementation that jUDDI will use to create UUIDs.

N

org.apache.juddi.uuidgen.DefaultUUIDGen

Subscription

Table 6. Subscription properties that can be referenced in the juddiv3.xml file.
Property Name Description Required Default Value or [Example Value]

juddi/subscription/expiration/days

Days before a subscription expires

N

[30]

juddi/subscription/chunkexpiration/minutes

Minutes before a "chunked" subscription call expires

N

[5]

juddi/notification/interval

Specifies the interval at which the notification timer triggers. This is the upper boundary set by the registry. Between the user defined endDate of a Subscription and this value, the registry will pick the earliest date.

N

3000000

juddi/notification/start/buffer

Specifies the amount of time to wait before the notification timer initially fires

N

20000

juddi/notification/acceptableLagtime

Specifies the amount of time (in ms) from which to determine if the server is overload and to skip notifications. Notifications during this cycle will not be repeated (i.e. never be delivered)

N

10000

juddi/notification/maxTries

Specifies the number of times to attempt the delivery of messages to subscribers.

N

3

juddi/notification/maxTriesResetInterval

Once the maximum delivery attempts have been made, the server will add that endpoint to an ignore list, which is reset every N ms.

N

600000

juddi/notification/sendAuthTokenWithResultList

Sends a valid authentication token for the owning user of the subscription in the subscription notification result message. Unless it is specifically needed, this is recommended to be set to false.

N

false

Custody Transfer

Table 7. Transfer properties that can be referenced in the _juddiv3.xml file.
Property Name Description Required Default Value or [Example Value]

juddi/transfer/expiration/days

Days before a transfer request expires.

N

[3]

Validation

Table 8. These settings are for validating the data that users store in jUDDI. They can be referenced in the _juddiv3.xml file.
Property Name Description Required Default Value or [Example Value]

juddi/validation/enforceReferentialIntegrity

As of 3.1.5 This setting will force referential integrity for all tModels (except keyGenerators), category bags, bindingTemplate/AccessPoint/hostingRedirector (referencing another host), tModelInstanceParms and anything else that references a KeyName default value is true. Set to false for backwards compatibility or for a more lax registry.

N

[true]

Deploying two or more jUDDI server on the same application server

It is possible to deploy one or more jUDDI servers to the same application server. You will need copy the juddiv3.war archive (let’s say you copied it to juddiv3a.war), and change the following settings to have it connect to a different database:
  1. edit the juddiv3a/META-INF/context.xml (and conf/Catalina/localhost/juddiv3a.xml) to use the jdbc/JuddiADS datasource, and add 'a' to the url: url="jdbc:derby:target/juddi-derby-test-db-v3a;create=true"

  2. edit the juddiv3a/WEB-INF/classes/META-INF/persistence.xml to use <non-jta-data-source>java:comp/env/jdbc/JuddiADS and persistence-unit name="juddiADatabase"

  3. edit the juddiv3a/WEB-INF/classes/juddiv3.xml to have <persistenceunit><name>juddiADatabase</name></persistenceunit>

This will create a new jUDDI server under the http://localhost:8080/juddiv3a url which connects to the juddi-derby-test-db-v3a Derby database.

jUDDI GUI Configuration

The jUDDI GUI (juddi-gui.war) has one place for configuration settings, the jUDDI Client config file.

jUDDI Client uddi.xml Settings

Defined in WEB-INF/classes/META-INF/uddi.xml, there are many settings to configure. All of these are clearly defined by the jUDDI Client Configuration Guide. The juddi-gui, uses things a bit differently, so here are the relevant parts to use. Note: this is xpath notation.

  • uddi/client/nodes/properties, not used

  • uddi/client/clerks, not used

  • uddi/client/nodes/node, all URLs except juddiApiUrl (not used)

  • uddi/client/signature, all validation related settings

  • uddi/client/subscriptionCallbacks, not used

  • uddi/client/XtoWsdl, not used

In addition, there a special section added just for the juddi-gui.war

Table 9. jUDDI GUI Configuration
Property Name Description Required Default Value or [Example Value]

uddi/config/props/authtype

This controls the authentication mode to connect to a UDDI server. Most implementations of UDDI use the security service, however others use HTTP based authentication. In this case, us the value of 'HTTP', otherwise 'UDDI_AUTH'

Y

UDDI_AUTH

uddi/config/props/enableAutomaticLogouts

This flag determines whether automatic logouts is enabled. By default, jUDDI-gui sets this to false for ease of use. (true/false)

N

false

udddi/config/props/enableAutomaticLogouts/duration

Time in milliseconds to force an automatic logout after inactivity.

N

900000

uddi/config/props/configLocalHostOnly

If false, the configuration page will be available from anywhere. If true, it will only be accessible from the server hosting juddi-gui. (true/false)

N

true

Encryption Keys

By default, the juddi-gui will use a randomly generated AES encryption key to help protect user credentials stored in the session object. This key is generated using the "StartupServlet" defined in the web.xml file of juddi-gui.war/WEB-INF/web.xml and then it is stored at the path juddi-gui.war/META-INF/config.properties@key.

If the start up servlet fails to start, any authenticate operation of the juddi-gui will fail.

Important
The user account that the container for juddi-gui runs as must have write access to the file juddi-gui.war/META-INF/config.properties.

Customizing the juddi-gui

The juddi-gui has a mechanism that you can use to alter the appearance of every page. This is typically used for organizations that require legal notifications, banners or warnings on every page for one reason or another. To add your own html to every page, edit the file in

juddi-gui/user/banner.jsp
Clone this wiki locally