New and changed features in JForum 2.8.0
Information about upgrading from JForum versions 2.7.0 to 2.8.0 can be found at Upgrading to JForum 2.8.0
New Features and fixes
- New feature: Registration can be restricted to particular email addresses or email addresses from particular domains, and then be auto-assigned to specific groups. E.g., this would allow a company to put all employees automatically into a group that has access to internal forums, whereas everybody else only sees the public forums, or you can restrict a forum to a particular set of people.
- New Feature: The authenticity of outgoing emails can now be verified via DKIM. See "Setup" in https://github.com/markenwerk/java-utils-mail-dkim for more information on that.
- Mobile view: The registration pages and the password recovery pages are now mobile-friendly
- Fixed a bug with the pagination on search result pages
- Development mode can be toggled on the Configurations page
- (for admins) The list of users shows the registration date
- Apache Tika has been removed from the codebase - it made the war file disproportionately large. The consequence is that only text and PDF attachments are indexed (and thus can be searched) now.
- Removed buggy "most users ever online" metric
- Removed switch to disable bookmarks - they're always available now. Set bookmarks to "private" when saving them to prevent others from seeing them.
- A minimum password length can now be set; by default it's 8.
- It's now possible to log in with the email address as well as username, as that is what users expect these days.
- The board timezone is now configurable (see Admin -> Configurations) for a more accurate date display, and dates now consider the board's and the user's locale. Also fixed a few cases where dates weren't properly I18N-ized.
- Fixed XSS issue with user signatures
- Fixed search bug when grouping results by forum
- Fixed bug with banners where only quite short custom HTML code segments were possible
- Show full-size popup when hovering over the thumbnail of an attached image
- Improvement: A new DB connection pool (HikariCP instead of C3P0) is now the default, which has much better performance (setting
database.connection.implementation
)
Libraries
- updated Apache Commons IO from 2.7 to 2.11.0
- updated Apache Commons Lang3 from 3.10 to 3.12.0
- updated Apache Commons Text from 1.8 to 1.9
- updated Apache Lucene from 8.5.2 to 8.10.1
- added Apache PDFBox 2.0.24
- removed Apache Tika
- updated FreeMarker from 2.3.30 to 2.3.31
- updated jQuery from 3.5.1 to 3.6.0
- updated Jsoup from 1.13.1 to 1.14.3
- added HikariCP 4.0.3
- updated HSqlDB from 2.5.1 to 2.5.2
- updated JUnit from 4.13 to 4.13.2
- updated MySQL driver from 5.1.49 to 8.0.27
- updated SQLServer driver from 8.2.2 to 9.4.0
- updated Oracle driver from 19.6.0.0 to 21.3.0.0
- updated PostgreSQL driver from 42.2.14 to 42.3.1
- updated PrettyTime from 4.0.5 to 5.0.2
- updated SLF4J from 1.7.30 to 1.7.32
New Configurations
Entry name |
Default value |
Description |
mail.dkim.signingDomain |
- |
The signing domain to be used. Usually corresponds to the ${mail.sender} property. |
mail.dkim.selector |
default |
The selector does not usually need to be changed |
mail.dkim.derFile |
- |
The full path to the file that contains the DER encoded RSA private key. |
mail.dkim.identity |
${mail.sender} |
The identity of the signer. Should be in the same domain as, or a subdomain of, the signing domain. |
password.min.length |
8 |
The minimum allowed length of the user password. |
dateTime.timezone |
- |
The timezone to use for displaying dates in tz format - something like "Europe/Berlin", "America/New_York" or "Asia/Taipei". See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for a list of possibilities. Leave blank to use the system default. |
registration.emailNotMatching.enabled |
false |
Whether emails not matching the registration emails/domains can register (and be assigned to defaultUserGroup). Set to false to allow only the specified emails/domains to register. |
Database Schema
CREATE TABLE jforum_registrations (
email VARCHAR(100) NOT NULL,
group_id INT NOT NULL
);
ALTER TABLE jforum_registrations ADD FOREIGN KEY (group_id) REFERENCES jforum_groups(group_id);
ALTER TABLE jforum_banner ALTER COLUMN banner_name TYPE VARCHAR(1024);