Section | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
is a multi-tenant application. See the administration section on Manage Tenants. However, it is possible that all you need is a single tenant. If this is your case, it simplifies the server login if you default the @<tenantname> so the user only needs to enter their username to login. Customers who default the tenant login normally would also customize the placeholder on the login screen. Please read that topic for details.
- Stop frevvo if it is running.
- Navigate to the <frevvo-home>\tomcat\conf directory
- Open the frevvo-config.properties file with a text editor.
Add the frevvo.default.login.tenant.id property to the <frevvo-home>\tomcat\conf\frevvo-config.properties file and set the param-value to the name of your one tenant.
Code Block title frevvo-config.properties frevvo.default.login.tenant.id=<your_tenant_id>
- Save the file
- Restart .
...
Sometimes running behind a proxy server can cause unintended changes to the form server's external URLs. The following configuration properties To address this issue. Add these properties to the <frevvo, configure a Tomcat proxy in the HTTP connector (port 8082) of the <frevvo-home>\tomcat\conf\frevvo-config.properties file.
...
frevvo.forms.server.external.url - If set, all share dialogs for forms and flows will use this as the external URL. Use the syntax shown in the example. Change the <myexternalhost>and <port> to your external server name and the port that you are using for on this server.
Code Block | ||
---|---|---|
| ||
frevvo.forms.server.external.url=http://<myexternalhost>:<port>> |
Note |
---|
If the frevvo.forms.server.external.url is used with X-forwarded headers, the external.url will always take precedence (so X-forwarded headers will not work.) |
frevvo.internal.port - The default value for frevvo.internal.port is 8081, which matches server.xml. If the internal port in server.xml changes to a different port, frevvo.internal.port also needs to change to the same port number. This may be needed when using frevvo.forms.server.external.url if that external url is not also accessible from the form server machine. Use the syntax shown in the example. Change the value "8082" to the port of your server.
Code Block | ||
---|---|---|
| ||
frevvo.internal.port=8082 |
Note |
---|
The frevvo.internal.baseurl property no longer exists in v10+. It is replaced by frevvo.internal.port. Any setting in frevvo.internal.baseurl will be ignored by frevvo. |
Warning |
---|
Changing the frevvo internal connector 8081 settings in the server.xml file can cause unexpected changes, and is not advised. Please keep this in mind before changing frevvo.internal.port. |
...
If you change frevvo.internal.port to 8082 then in this case also port 8081 will go unused, so you should remove the connector: port=8081 in the server.xml file. Changing the frevvo.internal.port to be 8082 (i.e. matching the default Tomcat connector port) will keep the internal routing enabled but will reuse the same Tomcat 8082 port.
If you change frevvo.internal.port to something different from 8082 then in this case user needs to set same port for the internal connector in server.xml file, as in this example:
...
server.xml file. Add the properties proxyName, proxyPort, scheme and secure as shown below.
Code Block | ||
---|---|---|
| ||
<Connector port="8082" protocol="org.apache.coyote.http11.Http11NioProtocol" |
...
connectionTimeout="40000"
|
...
maxHttpHeaderSize="32768" useBodyEncodingForURI="true" proxyName="<myexternalhost>" proxyPort="<proxy port>" scheme="https" secure="true" /> <!-- makes sure that uri parameter are decoded |
...
as utf-8 --> |
Default Port
By default the tomcat bundle is configured to bind to port 8082. You can change the port by:
...
Note |
---|
|
...
no longer supports the web.xml parameters for frevvo.xforwarded.protocol.header, frevvo.xforwarded.host.header, and frevvo.xforwarded.port.headers. The general recommendation is to rely on the Servlet Container for handling dynamic proxies. A better approach is to use tomcat's RemoteIp Valve instead. Please see this documentation on the Apache Tomcat website for information about the RemoteIp valve functionality. This tomcat valve has been incorporated into our tomcat bundle.
Code Block |
---|
<Valve className="org.apache.catalina.valves.RemoteIpValve" internalProxies=".*" remoteIpHeader="x-forwarded-for" proxiesHeader ="x-forwarded-by" protocolHeader="x-forwarded-proto" /> |
...
The frevvo API uses an http connection pool which implies that connections are reused for a given route. In some cases, an API call (such as a rule or doc action) may fail intermittently due to a connection reset or a socket read timeout. Setting the property http.connection.maxidletime in the frevvo-config.properties file may resolve this issue. This property sets the idle time in milliseconds beyond which the connection will be closed by the monitor. By default, it is not set and hence there is no monitor running. Once it is configured with a positive value e.g. 30000, the monitor runs every 1 second looking for expired idle connections and closes them.
...
Skew error when logging into an Azure SAML tenant
Users logging into a Azure SAML tenant may encounter the error "Access Denied. Authorization Required". Examination of the frevvo.log shows the following entry:
Code Block |
---|
Response issue time is either too old or with date in the future, skew 60, time 2016-06-01T05:49:25.330Z |
This error is typically caused by a clock synchronization issue between the Service Provider (frevvo) and the Identity Provider (Azure) or a genuine delay in the connection. If you get this error, adding the com.frevvo.security.saml.response.skew property can be used to specify the time in seconds allowed between the request and the response from Azure to a value greater than the default value of 60 seocnds.
Follow these steps:
- Stop frevvo if it is running.
- Navigate to <frevvo-home>\tomcat\conf
- Open the frevvo-config.properties file with a text editor.
Add the parameter shown below with a value greater than the default value of 60 seconds. The example shown increases the timer to 120 seconds.
Code Block com.frevvo.security.saml.response.skew=120
Save the file.
- Restart .
- Retry the login.
...
Changing the Default Task Notification Email Message
If you want to change the default subject and body of the task notification email for your server, add these properties to the frevvo-config.properties file.
Code Block |
---|
frevvo.task.notification.email.subject=New task frevvo.task.notification.email.message=You can access your task list by clicking <a href="{task.perform.url}">this link</a> |
Change the value in this parameter to anything you want. The task.perform.url template {task.perform.url} is a built-in template in and it will always point to the specific task. Refer to the Task Notification Email Link topic for some other options. If you wrap the templates in an HTML <a> tag, it will generate a clickable link in the email.
If you do not want the link in your task notification emails to go there, you can remove it. The default message can include form control templates.
Security Vulnerabilities
The following security vulnerablities have been addressed as follows:
...
Secure Passwords in Tomcat
Security audits may point out that some secrets are stored in clear text in tomcat configuration files. Here is a list of (known) secrets that are currently stored in clear text by default:
Tomcat JDBC and SMTP configurations in Tomcat’s <frevvo-home>\tomcat\conf\server.xml
Database password in <frevvo-home>\tomcat\conf\dbconnector.properties
Google Connector’s Client Secret in <frevvo-home>\tomcat\conf\frevvo-config.properties
frevvo’s SAML keystore password in <frevvo-home>\tomcat\bin\setenv.bat and the service.bat files for the Windows OS or setenv.sh for UNIX/Linux OS
Tomcat, and thereby , does not support encryption out of the box. There are two main options for securing this information.
Limit access to Tomcat files
The first option is limiting access to the file so that it can only be read by the user that Tomcat process runs as and root (or the administrator on Windows). Here are two relevant articles about Tomcat passwords that provide suggestions for limiting access and masking sensitive information:
- https://cwiki.apache.org/confluence/display/TOMCAT/Password.
- https://wiki.owasp.org/index.php/Securing_tomcat#Cleartext_Passwords_in_CATALINA_HOME.2Fconf.2Fserver.xml
For the Database Connector, you can define the data source at the container (tomcat) level for some added security. Please see this documentation which explains how.
OS Environment Variables
Starting in Tomcat v9.0.34 ( v9.0.15+) Tomcat introduced support for environment variables in server.xml. (See Apache Tomcat 9 (9.0.54) - Changelog for details.) This new capability is disabled by default in Tomcat but can be enabled by adding the following property to conf/catalina.properties.
...