By using the file site.properties in the WEB-INF folder of the web application folder, the application can be configured:
•The connection with Oracle RDBMS and the ERP system.
•The multilinguality.
•The connection with the user date (usernames and passwords)
•Other minor adjustments.
Since they directly influence the core of the application, these changes can only be made by qualified consultants of Invantive Software BV.
The procedure for applying changes consists of:
•Stop web server.
•Edit site.properties.
•Start web server.
•The changes will be effective immediately after a user logs on.
For more information regarding its use, you can use the below copy.
#logger properties @0-029F305D
logfile=c:\\temp\\bubs3.log
logpriority=debug
# Logsize in Kb. File is truncated and written after this size.
logsize=1024000
#End logger properties
#url properties @0-E8A730F5
serverUrl=http://localhost/bubs3
securedUrl=/bubs3
#End url properties
#localization properties @0-0D67F023
encoding=utf-8
language=Netherlands
defaultDateFormat=dd-MM-yyyy
defaultBooleanFormat=Y;N
requestEncoding=utf-8
#End localization properties
#messages bundle @0-77F70051
messagesBundle=MessagesBundle
#End messages bundle
#file upload @0-215C2A9B
com.codecharge.util.upload.storage=memory
#End file upload
#body post processor class name @0-C5219FBD
bodyPostProcessor.className=com.codecharge.util.CcsBodyPostProcessor
#End body post processor class name
#template class name @0-8EA332EE
template.class.name=com.codecharge.template.CCSTemplate
#End template class name
#templateSource class name @0-840DD0B6
templateSource.class.name=com.codecharge.template.FileTemplateSource
#End templateSource class name
#templateParser class name @0-7F4F85C9
templateParser.class.name=com.codecharge.template.TemplateParser
#End templateParser class name
#templateFolder @0-52356875
templateFolder=
#End templateFolder
#styles settings @0-27E71411
useDynamicStyles=True
defaultStyle=Apricot
SSEnableQueryString=True
SSQueryStringName=style
SSEnableSession=True
SSSessionName=style
SSEnableCookie=False
SSCookieName=style
SSCookieExpired=365
#End styles settings
#defaultLocale @0-45E529E7
defaultLocale=nl
#End defaultLocale
#localeSwitching @0-02E16A18
useI18nFeatures=True
enableQueryString=true
queryStringName=locale
enableSession=true
sessionName=locale
languageSessionName=lang
enableCookie=false
cookieName=locale
cookieExpired=365
enableHTTPHeader=false
httpHeaderName=
#End localeSwitching
#authentication properties @0-045E17BF
authenticator.securityType=CCS
authenticator.factoryClassName=com.codecharge.util.CCSAuthenticatorFactory
authenticator.securityStorage=session
authenticator.inheritanceRights=False
authenticator.userIdFieldName=GBR_ID
authenticator.userIdVarName=UserID
authenticator.loginFieldName=GBR_AANMELD_CODE
authenticator.loginVarName=UserLogin
authenticator.passwordFieldName=GBR_WACHTWOORD
authenticator.connectionName=bubs_tomcat
authenticator.tableName=BUBS_GEBRUIKERS_V
#End authentication properties
#tags to lower case @0-0649DE20
tags.toLowerCase=false
#End tags to lower case
#Connection 'bubs_tomcat' properties @1-28E264C0
bubs_tomcat.name=bubs_tomcat
bubs_tomcat.driver=oracle.jdbc.driver.OracleDriver
bubs_tomcat.dbType=Oracle
bubs_tomcat.url=jdbc:oracle:thin:@localhost:1521:ORCL
bubs_tomcat.maxconn=250
bubs_tomcat.user=bubs_tomcat
bubs_tomcat.password=bubs_tomcat
bubs_tomcat.timeout=3600
bubs_tomcat.fieldLeftDelim="
bubs_tomcat.fieldRightDelim="
bubs_tomcat.dateLeftDelim='
bubs_tomcat.dateRightDelim='
bubs_tomcat.dbNameUppercase=True
bubs_tomcat.dateFormat=dd-MM-yyyy HH:mm
bubs_tomcat.booleanFormat=Y;N
bubs_tomcat.optimizeSQL=True
bubs_tomcat.sessionCommand0=ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MM-YYYY HH24:MI'
#End Connection 'bubs_tomcat' properties
#Connection 'bubs_exact' properties @2-444594F2
bubs_exact.name=bubs_exact
bubs_exact.driver=com.microsoft.jdbc.sqlserver.SQLServerDriver
bubs_exact.dbType=MSSQLServer
bubs_exact.url=jdbc:microsoft:sqlserver://localhost:21433
bubs_exact.maxconn=10
bubs_exact.user=bubs
bubs_exact.password=expbubs
bubs_exact.timeout=300
bubs_exact.fieldLeftDelim=[
bubs_exact.fieldRightDelim=]
bubs_exact.dateLeftDelim='
bubs_exact.dateRightDelim='
bubs_exact.dbNameUppercase=True
bubs_exact.dateFormat=yyyy-MM-dd HH:mm:ss
bubs_exact.booleanFormat=Y;N
bubs_exact.optimizeSQL=True
#End Connection 'bubs_exact' properties
The meaning of the relevant settings is:
•logfile: via logfile you can set at what place the log file must be made. The user of the operating system under who the web server is executed, must have writing access to this.
•logpriority: via logpriority you can set how detailed the web application must store its activities in the log file. Possible values are ̒error̓, ̒warn̓, ̒info̓ and ̒debug̓. ̒Error̓ stores only error messages, while the other settings add more information.
•logsize: the maximum size of the log. If this size in Kb is exceeded, then the file is deleted and recreated for writing.
•serverUrl: the URL serving as a base for normal use of the web application via http. A screen URL is constructed using the value of the ‘serverURL’ adding for example ‘bubs_odt_all.do’ for the orders screen.
•securedUrl: the Url serving as a base for logging into the web application via https.
•encoding: the character set used to show the data in the browser. ‘Utf-8’ is the most flexible character set, in which for all common languages all characters are simultaneously present.
•requestEncoding: the character set used to process data which were received from the browser.
•language: the language used in case no user specific language has been selected. This language is thus normally used for the login screen, for example.
•defaultLocale: the geographical region setting used in case no user specific region has been selected. This region setting is thus normally used for the login screen, for example.
The ‘authenticator’ is the module that validates whether users are actually the person they pretend to be. By default, usernames and passwords are used in the way they are registered in the application itself (see Persons). One can also choose for a deviating authentication mechanism, for example by using LDAP or Microsoft Active Directory.
The meaning of the settings starting with ‘authenticator.’ is:
•authenticator.securityType: always has to be turned to ‘CCS’.
•authenticator.factoryClassName: the Java component used to execute the authentication. For the built-in authentication based on the usernames in the screen Persons the value ‘com.codecharge.util.CCSAuthenticatorFactory’ has to be entered. For LDAP the value ‘com.codecharge.util.LDAPAuthenticatorFactory’ must be entered.
•authenticator.userIdVarName: the name of the session variable holding the unique ID of the user, as determined in ‘authenticator.userIdFieldName’. Always ‘UserID’.
•authenticator.loginVarName: the name of the session variable holding the username of the user, as determined in ‘authenticator.loginFieldName’. Always ‘UserLogin’.
•authenticator.securityStorage: the location where the security credentials are stored. Always ‘session’.
•authenticator.inheritanceRights: a reference whether or not the rights must be inherited from the lower authorisation levels. This setting must always have the value ‘False’ .
•authenticator.ldap.external.suffix: only for LDAP. The branch under which the organization registers and searches for its authentication data, for example, ‘OU=MyBusiness,DC=invantive,DC=local’.
•authenticator.ldap.external.server: only for LDAP. The address of the LDAP server, for instance ‘192.168.172.11’.
•authenticator.ldap.external.protocol: only for LDAP. The used LDAP protocol, for instance ‘ldap’ or ‘ldaps’.
•authenticator.ldap.external.useruniqueattribute: only for LDAP. The attribute uniquely showing across the organization which user it is. The value of this must also be registered in the user registration of Invantive Estate in the field ‘Logon Code’. An example is ‘userPrincipalName’.
•authenticator.ldap.external.port: only for LDAP. The port number on the LDAP server, for instance 389 for LDAP or 636 for LDAPS.
•authenticator.ldap.external.fillinpatternlogin: only for LDAP. The LDAP query pattern in which the username is entered in order to log a user on to LDAP, as long as there are no characters in ‘fullrecognition’ present in the username. The text ‘:account’ is replaced by the entered username. An example is ‘cn=:account,OU=SBSUsers,OU=Users,OU=MyBusiness,DN=invantive,DN=local’.
•authenticator.ldap.external.fullrecognition: only for LDAP. The value in ‘authenticator.ldap.fillinpatternlogin’ is used in combination with the value registered in the LDAP attribute such as entered in ‘authenticator.ldap.useruniqueattribute’. However, in case the value in the LDAP attribute such as entered in ‘authenticator.ldap.useruniqueattribute’ contains one of the signs which have been filled out in this series of signs, solely the value of the LDAP attribute is sent to the server and the value in ‘authenticator.ldap.fillinpatternlogin’ is not used. An example is the character ‘@’.
•authenticator.ldap.external.fillinpatternuniqueattribute: only for LDAP. The pattern in which the username is entered in order to search for data of the user such as the email address, as long as there are no characters in fullrecognition present in the username. The text ‘:account’ is replaced by the entered username. An example is ‘:account@invantive.local’
•.authenticator.ldap.external.systemaccount: only for LDAP. The account with which the user ‘system’ has to be authenticated with. An example is ‘Administrator’. Note: This account is only used for LDAP authentication within the gateway. You always need to logon as the user ‘system’.
•authenticator.ldap.local.try: indicator or - if the LDAP authentication is not successful - an attempt should be made to authenticate the user with the entered password against the local user data (identical to ‘com.codecharge.util.CCSAuthenticatorFactory’.). This is occasionally used to quickly test scenarios for complex work flows.
•authenticator.ldap.local.validationSql: SQL statement to check the local authentication. The query should return one row if found and in all other cases nothing. The password is completed for all occurrences of: the user name and password for all occurrences of: account.
•authenticator.ldap.local.regexFilter: regular expression to determine for which user login codes local authentication is allowed, for example, ‘.*’ to allow this for all users.
•authenticator.tableName: only for built in user authentication. The name of the table or views which contains the user data used for authentication. Always ‘BUBS_GEBRUIKERS_V’.
•authenticator.connectionName: only for built-in users authentication. The name of the connection used to read the table. Always ‘bubs_tomcat’.
•authenticator.userIdFieldName: only for built-in users authentication. The name of the column storing the unique user's ID. Always ‘GBR_ID’.
•authenticator.loginFieldName: only for built in users authentication. The name of the column in which the username of the user is stated. Always ‘GBR_AANMELD_CODE’.
•authenticator.passwordFieldName: only for built-in users authentication. The name of the column in which the user's passwords is stated. Always ‘GBR_WACHTWOORD’.
To solve LDAP authentication problems, it is recommended to use LDAP tools such as ldapsearch (Unix / Linux), dsquery (Microsoft Windows Server 2003) or Novell's Ldapsearch (http://www.novell.com/coolsolutions/tools / 17350.html):
ldapsearch -x \
-h 192.168.172.11 \
-w secret \
-D 'cn=UW NAAM IN WOORDEN,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=invantive,DC=local' \
-b OU=MyBusiness,DC=invantive,DC=local \
userPrincipalName=USER@invantive.local mail
The series of settings starting with ‘bubs_tomcat’ stores with which connection the application data can be approached. The meaning of the settings is:
•bubs_tomcat.name: the name of the connection. Always ‘bubs_tomcat’.
•bubs_tomcat.driver: the name of the Java Class used to set the connection in accordance with JDBC. Always ‘oracle.jdbc.driver.OracleDriver’.
•bubs_tomcat.dbType: the type of the underlying database. Always ‘Oracle’.
•bubs_tomcat.url: the JDBC URL used to build the connection with. This has the format ‘jdbc:oracle:thin:@’, followed by the server's name or address, the sign ‘:’, the port to which the database listener listens to (often 1521), again the sign ‘:’ and finally the name of the instance. An example is ‘jdbc:oracle:think:@localhost:1521:ORCL’.
•bubs_tomcat.maxconn: the maximum number simultaneous connections with the Oracle database. This usually is around 20% of the maximum number of simultaneous users. A higher value cannot do any harm, next to needing 10 Mb extra internal memory per connection really being used on peak moments. For development environments, it is sometimes helpful to set the number to ‘0’. This means that the connection is closed immediately after use. This costs performance, but makes it easier to avoid problems by holding ‘state’ (for example, ORA-04061 messages) when a developer changes code while the system is running. In most cases, removing an Oracle session will be automatically repaired by the web interface.
•bubs_tomcat.user: The Oracle user with whom the connection is made. For example, ‘bubs_tomcat’.
•bubs_tomcat.password: the password of the Oracle user as stored in ‘bubs_tomcat.user’.
•bubs_tomcat.timeout: the web application considers a user non-active after a while and logs him off. The value of ‘bubs_tomcat.timeout’ determines after how many seconds the user is automatically logged off.
•bubs_tomcat.fieldLeftDelim: the sign used to quote field names in database requests on the left. Always‘"’.
•bubs_tomcat.fieldRightDelim: bubs_tomcat.fieldLeftDelim: the sign used to quote field names in database requests on the right. Always‘"’.
•bubs_tomcat.dateLeftDelim: the sign used to quote date constants in database requests on the left. Always‘"’.
•bubs_tomcat.dateRightDelim: the sign used to quote date constants in database requests on the right. Always‘"’.
•bubs_tomcat.dBNameUppercase: always ‘True’.
•bubs_tomcat.dateFormat: the used database format for dates, always ‘dd-MM-yyyy HH:mm’.
•bubs_tomcat.booleanFormat: the used database format for fields containing a boolean flag (‘true’ or ‘false’). Always ‘Y;N’.
•bubs_tomcat.optimizeSql: always ‘True’.
•bubs_tomcat.sessionCommand0: the statement always being executed after building up a new session. Always ‘alter session set nls_date_format = ‘DD-MM-YYYY HH24:MI0145’’.
In the series of settings beginning with ‘bubs_exact.’ it is stored via which connection the data for the ERP interface are obtained. The meaning of the settings is:
•bubs_exact.name: the name of the connection Always ‘bubs_exact’.
•bubs_exact.driver: the name of the Java class used to build the connection in accordance with JDBC. For example, ‘oracle.jdbc.driver.OracleDriver’ for an Oracle RDBMS and ‘com.microsoft.jdbc.sqlserver.SQLServerDriver’ for Microsoft SQL Server.
•bubs_exact.dbType: the type of the underlying database. For example, ‘Oracle’ for an Oracle RDBMS and ‘MSSQLServer’ for Microsoft SQL Server.
•bubs_exact.url: de JDBC URL used to build the connection with. For Oracle RDBMS it has the format ‘jdbc:oracle:thin:@’, followed by the name or address of the server, the sign ‘:’, the port to which the database listener listens to (often 1521), again the sign ‘:’ and finally the name of the instance. An example is ‘jdbc:oracle:think:@localhost:1521:ORCL’. For Microsoft SQL Server this has the format 'jdbc:microsoft:sqlserver://', followed by the name or address of the server, the sign ':' and the gate to which the database listener listens to (often1433). An example is ‘jdbc:microsoft:sqlserver://localhost:1433’.
•bubs_exact.maxconn: the maximum number of simultaneous connections with the ERP database. This usually is around 20% of the maximum number of simultaneous users. More than 1 usually has no point, since the ERP interface can be processed no more than one time.
•bubs_exact.user: the user with which a connection is made. For instance ‘exact’.
•bubs_exact.password: the password of the user, as stored in ‘bubs_exact.user’.
•bubs_exact.timeout: the web application considers a user non-active after a while and logs him off. The value of ‘bubs_exact.timeout’ determines after how many seconds the user is automatically logged off.
•bubs_exact.fieldLeftDelim: the sign used to quote field names in database requests on the left. Always ‘"’ for Oracle and ‘[’ for Microsoft SQL Server.
•bubs_exact.fieldRightDelim: the sign used to quote field names in database requests on the right. Always ‘"’ for Oracle and ‘]’ for Microsoft SQL Server.
•bubs_exact.dateLeftDelim: the sign used to quote date constants in database requests on the left. Always‘"’.
•bubs_exact.dateRightDelim: he sign used to quote date constants in database requests on the right. Always‘"’.
•bubs_exact.dBNameUppercase: always ‘True’.
•bubs_exact.dateFormat: the used database format for dates, always ‘dd-MM-yyyy HH:mm’ for Oracle and ‘yyyy-MM-dd HH:mm:ss’ for Microsoft SQL Server.
•bubs_tomcat.booleanFormat: the used database format for fields containing a boolean flag (‘true’ or ‘false’). Always ‘Y;N’.
•bubs_exact.optimizeSql: always ‘True’.