GeoServer Blog
GeoServer 2.24.5 Release
GeoServer 2.24.5 release is now available with downloads (bin, war, windows), along with docs and extensions.
This is a maintenance release of GeoServer providing existing installations with minor updates and bug fixes. GeoServer 2.24.5 is made in conjunction with GeoTools 30.5, and GeoWebCache 1.24.5.
Thanks to Andrea Aime for making this release.
Release notes
Improvement:
- GEOS-11336 security-keycloak: upgrade keycloak version
- GEOS-11443 REST API does not take effect immediately due to 10 minute authentication cache
- GEOS-11463 WMS vector dimension validation should query only one feature and only for dimension attribute
- GEOS-11502 Permit resize on user/group/role palette textbox to allow for extra long role names
Bug:
- GEOS-11446 [INSPIRE] Incorrect behavior for unsupported languages
- GEOS-11453 Failure to look-up default value of custom dimensions on vector layers
- GEOS-11462 500 error thrown when double adding a user to a group via REST with JDBC user/group services
- GEOS-11484 DirectRasterRenderer is not respecting advancedProjectionHandling and continuosMapWrapping format_options
- GEOS-11493 Azure blob store may not get environment parameters from property file
Task:
- GEOS-11464 Update Jackson 2 libs from 2.17.1 to 2.17.2
For the complete list see 2.24.5 release notes.
Community Updates
Community module development:
- GEOS-11111 Open search for EO community module: STAC search page has wrong self link
Community modules are shared as source code to encourage collaboration. If a topic being explored is of interest to you, please contact the module developer to offer assistance.
About GeoServer 2.24 Series
Additional information on GeoServer 2.24 series:
- GeoServer 2.24 User Manual
- Control remote HTTP requests sent by GeoTools/GeoServer
- State of GeoServer 2.24.1 (foss4g-asia presentation)
- Multiple CRS authority support, planetary CRS
- Extensive GeoServer Printing improvements
- Upgraded security policy
Release notes: ( 2.24.5 | 2.24.4 | 2.24.3 | 2.24.2 | 2.24.1 | 2.24.0 | 2.24-RC )
Using Binary Comparison Operators in GeoServer Filters
GeoSpatial Techno is a startup focused on geospatial information that is providing e-learning courses to enhance the knowledge of geospatial information users, students, and other startups. The main approach of this startup is providing quality, valid specialized training in the field of geospatial information.
( YouTube | LinkedIn | Facebook | X )
Binary Comparison Operators in GeoServer Filters
In this session, we want to talk about the various types of filters, with a particular focus on “Binary comparison operators in GeoServer” comprehensively. If you want to access the complete tutorial, click on the link.
Introduction
Filtering allows the selection of features that satisfy a specific set of conditions. Filters can be used in several contexts in GeoServer:
- In WMS requests, select which features should be displayed on a map
- In WFS requests, specify the features to be returned
- In SLD documents, apply different symbolizations to features on a thematic map
Note. This video was recorded on GeoServer 2.22.4, which is not the most up-to-date version. Currently, versions 2.24.x and 2.25.x are supported. To ensure you have the latest release, please visit this link and avoid using older versions of GeoServer.
Supported filter languages
Data filtering in GeoServer follows the OGC Filter Encoding Specification, which provides a standard XML schema for encoding spatial, attribute, and temporal filters in GIS. This allows for customized queries to retrieve specific data from databases and web services while ensuring interoperability among GIS applications. GeoServer supports filters in both Filter Encoding Language and Common Query Language.
Filter Encoding Language
The Filter Encoding language, defined by OGC standards, utilizes an XML-based syntax to select specific features, similar to the “WHERE” clause in SQL. A filter consists of a condition formed by Predicate elements and Logical operators, employing comparison and spatial operators to evaluate relationships between feature properties. In this session, we will explore various types of binary comparison operators, while the next sessions will cover spatial operators.
Common Query Language
Common Query Language (CQL) is a Text-based language used in GeoServer for constructing filters and queries on geospatial data. It provides flexible and powerful options for filtering and retrieving specific subsets of data from GeoServer layers. In the upcoming sessions, we will dive into a detailed exploration of CQL/ECQL, covering its various operations and practical usage.
Comparison operators
These operators are part of Filter Encoding operators and are used in attribute-based queries to filter and retrieve specific features or data, based on their non-spatial attributes. The comparison operators include: binary comparison operators and value comparison operators.
The binary comparison operators are:
- PropertyIsEqualTo
- PropertyIsNotEqualTo
- PropertyIsLessThan
- PropertyIsLessThanOrEqualTo
- PropertyIsGreaterThan
- PropertyIsGreaterThanOrEqualTo
These operators contain two filter expressions to be compared. The first operand is often a <PropertyName>
, but both operands may be any expression, function or literal value. Binary comparison operator elements may include an optional matchCase attribute, with the true or false value. The default value is true, but the comparisons do not check the case if the attribute has a false value.
Note. String comparison operators are case-sensitive.
PropertyIsEqualTo
PropertyIsNotEqualTo is a common type of filter used in GeoServer, which allows you to retrieve features from a data source based on the values of one or more properties. As an example of using this filter in WFS getFeature request:
- Navigate to the Demos page, then select Demo requests.
- From the Request section, select the WFS_getFeature1.0.xml request.
- The address will be filled in automatically, in the URL section.
Use the following block codes to replace line 26:
<PropertyIsEqualTo>
<PropertyName>STATE_NAME</PropertyName>
<Literal>Delaware</Literal>
</PropertyIsEqualTo>
- Now, we will explain some elements:
- The first fifteen lines include explanations in the form of comments.
- Line 16 describes the XML version and the GetFeature operation of the WFS service being used.
- Line 17 specifies the default output format for the WFS service as “gml2.” Additionally, GeoServer supports several other commonly used formats such as “gml3, shapefile, geojson, and csv.”
- Lines 18 to 23 define the start of the XML request and declare the namespaces used in the request.
- Line 24 specifies the type name of the feature to be queried. In this case, it requests features of the “topp:states”.
- Lines 25 to 30 define the filter criteria for the query. On these lines, we use the PropertyIsEqualTo filter, to retrieve all features where the state name attribute is equal to
Delaware
.
-
Press the Submit button to see the implemented changes.
- Note. For GeoServer 2.25.2 the Demo Request page has been improved to show response Headers, and provide the option to pretty print XML output.
PropertyIsNotEqualTo
PropertyIsNotEqualTo is another common type of filter used in GeoServer, which allows you to retrieve features from a data source based on properties that don’t match a specified value. As an example of using this filter in a WFS getFeature request, use the following block codes to replace lines 26 to 29:
<PropertyIsNotEqualTo matchCase="false">
<PropertyName>STATE_NAME</PropertyName>
<Literal>delAwarE</Literal>
</PropertyIsNotEqualTo>
Note. The matchCase attribute in WFS_getFeature 1.1 and 2.0 versions, can be set to “false” to specify a case-insensitive comparison.
Press the Submit button.
In this example, we used the <PropertyIsNotEqualTo>
filter to retrieve all features where the STATE_NAME
attribute, is not equal to Delaware
.
PropertyIsLessThan
The PropertyIsLessThan filter is used to filter features, based on a comparison of a numeric property with a given value. It returns all features where the specified property is less than the specified value.
An example of using this filter in a WFS getFeature request is:
outputFormat="shape-zip"
<wfs:Query typeName="topp:states">
<wfs:PropertyName>topp:STATE_NAME</wfs:PropertyName>
<wfs:PropertyName>topp:LAND_KM</wfs:PropertyName>
<ogc:Filter>
<PropertyIsLessThan>
<PropertyName>STATE_FIPS</PropertyName>
<Literal>18</Literal>
</PropertyIsLessThan>
</ogc:Filter>
Press the Submit button.
In this example, we used the <PropertyIsLessThan>
filter to get all features in a shapefile format where the value of the STATE_FIPS
attribute is less than 18
. The query only retrieves the STATE_NAME
and LAND_KM
fields, instead of all the attributes.
In this session, we took a brief journey through the various types of filters, with a particular focus on “Binary comparison operators in GeoServer”. If you want to access the complete tutorial, simply click on the link.
GeoServer User Forum replaces mailing list
GeoServer is updating our communication channels!
We know people do not like signing up for mailing lists, Twitter has been Xed out, and it is time to move on.
GeoServer User Forum
Welcome to the GeoServer User forum:
- This forum is open to the public, we are pleased to meet you and hope you enjoy using GeoServer.
- Hosted by Open Source Geospatial Foundation
- All project communication including this forum are subject to our code of conduct
- This is one of many options for community support and communication.
Sign in
Taking part is easy (sign-in with credentials you already have):
-
Login to discourse.osgeo.org:
-
Login “with LDAP” to use your OSGeo UserID (also used for other osgeo services).
The button appears greyed out, but this is only poor styling choice. The button is enabled and works.
-
Use “Log in with GitHub” to use GitHub credentials.
-
More options are added over time.
-
-
You may also use “Sign Up” if you want to create an account just for use with the Forum.
-
Unsubscribe from geoserver-users email list.
We will continue to operate the geoserver-user list for the month of August, and then do a final synchronization of any outstanding email messages to complete the migration.
-
Navigate to the category GeoSever / User to enjoy the forum.
-
Use New Topic to start a new conversation.
Only the
GeoServer / user
subcategory allows new topics. If the New Topic button is disabled you may be looking at theGeoServer
top-level category. -
To test please send introduce yourself we are looking forward to meeting you.
Use as a mailing list replacement
If you enjoy the out-of-band timezone friendly mailing list experience - Discourse allows you to subscribe to notifications, and use email to post and reply to topics.
-
Sign-in to Discourse as above.
-
From your profile preferences, use the email tab to adjust email settings.
IMPORTANT: Email is only sent when you are not logged in to the discourse website!
-
Navigate to GeoSever User category, and use the bell to change notifications to Watching.
-
If you wish to update any email rules the new mailing is
user.geoserver.discourse.osgeo.org
-
You can send email to geoserver-user@discourse.osgeo.org to start a new topic.
To test please send an email to introduce yourself (rather than a test message).
Mastadon and other socials
GeoServer is occasionally active on social media:
- Mastadon: @geoserver@fosstodon.org
- LinkedIn Group
- Twitter/X: @GeoServerO - only used for emergencies.
If you enjoy social media we would love some assistance reposting and highlighting our community activity. Contact us on your preferred social media platform to help out.
GeoServer 2024 Q3 Developer Update
This is a follow up to 2024 roadmap post outlining development opportunities.
First of all thanks to developers and organisations that have responded with offers of in-kind contributions. This blog post is assessing current progress and outlines a way forward to complete the Java 17/Jakarta EE/Spring 6 upgrades.
This post highlights development activities that are available to be worked on today, along with interested developers and commercial support providers available to work on GeoServer roadmap items.
Spring Framework 6 Tasks
The key challenge we are building towards is a spring-framework 6 update, ideally by the end of 2024 when the version we use now reaches end-of-life.
The tasks below are steps towards this goal.
Wicket 9 upgrade
Interested Parties:
- Brad has been doing amazing work with the Wicket 9 upgrade and is in need of assistance.
- GeoCat has offered to do manual A/B testing when PR is ready for testing.
Activity:
- [GEOS-11275] Wicket 9 upgrade
- geoserver#7154
Spring Security 5.8 update
Spring Security 5.8 provides a safe stepping stone ahead of the complete spring-framework 6 upgrade and is an activity that can be worked on immediately.
Interested parties:
- Andreas Watermeyer (ITS Digital Solutions) offered to work on this activity in during the initial January call out, and has indicated they are now ready to start.
Activity:
- [GEOS-11271] Upgrade spring-security to 5.8
Spring Security Core implementation of OAuth2 / OIDC
The spring-security-oauth client has reached end-of-life and a GeoServer OAuth2 support must be rewritten or migrated as a result.
There are two paths to migrate to spring-security-core implementation:
-
Option: Migrate the existing community module implementations to spring-security-core in place; with as little loss of functionality as possible. This has the advantage of using existing test coverage to maintain a consistent set of functionality during migration.
-
Option: Setup a community module alongside the existing implementation with the goal of making a full supported etension. This approach has the advantages of allowing organisations the ability to do A/B testing as both the old and new implementation would be available alongside each other. This has the advantage of allowing stakeholders to only fund, implement, test functionality as required without disrupting existing use.
Security integrations often require infrastructure to develop and test against, which the core GeoServer team does not have access to for automated tests. We would like to see organisations review their security integration requirements and be on hand to support this development activity.
The initial priority will support for OAuth2 and Open ID Connect (OIDC), parties interested in maintaining support for Google, GeoNode, GitHub are welcome to participate.
Interested Parties:
- Andreas Watermeyer (ITS Digital Solutions) offered to work on this activity, or test as needed.
- GeoCat is interested in this work also, with the goal of bringing the OIDC plugin up to full extension status (if financing is available).
Activity: not started
- [GEOS-11272] spring-security-oauth replacement, with spring-security 5.8
ImageN / JAI Replacement
The image processing library used by GeoServer has been donated to the open source community under the name ImageN.
The immediate goal has been to add test cases to this codebase and make an ImageN 1.0 release. Andrea has come up with the amazing idea of integrating with JAI-Ext project immediately, to benefit from the improved operators, and jumpstart test coverage.
Interested Parties:
- Jody (GeoCat) is available to support this activity, or take lead if funding is available.
- Andrea (GeoSolutions) has had a deep dive into the implications for the JAI-EXT project outlining a roadmap for project integration
We would like to see organisations that depend on GeoServer for earth observation and imagery to step forward with funding for this activity.
2024 Financial support and sponsorship
Thus far 2024 has not had a strong enough sponsorship response to support the project goals above. As a point of comparison we established a budget of $15,000 with OSGeo last year to take on an low-level API change that affected several projects.
This year GeoServer sponsorship has raised between $1,000 and $2,000 which is not enough to plan with or coordinate in-kind contributions offered thus far.
Jody has worked with the OSGeo board to make adjustments to the sponsorship:
- Guidance has been provided for appropriate sponsorship levels for individual consultants, small organisation, companies and public institutions of different sizes.
- There are clear examples of how to sponsor and donate, along with the the perks and publicity associated with financial support
- GeoServer has a new sponsorship page on our website collecting this information
- GeoServer now lists sponsors logos on our home page, alongside core contributors.
We would like to thank everyone who has responded thus far:
- Sponsors: How 2 Map, illustreets
- Individual Donations: Peter Rushforth, Marco Lucarelli, Gabriel Roldan, Jody Garnett, Manuel Timita, Andrea Aime
GeoServer 2.25.3 Release
GeoServer 2.25.3 release is now available with downloads (bin, war, windows), along with docs and extensions.
This is a stable release of GeoServer recommended for production use. GeoServer 2.25.3 is made in conjunction with GeoTools 31.3. This release is smaller than usual due to the earlier 2.25.2 security update that was released earlier this month.
Thanks to Ian Turton for making this release.
Release notes
Improvement:
- GEOS-11336 security-keycloak: upgrade keycloak version
- GEOS-11424 Speed up web-ui WorkspaceAdminComponentAuthorizer
- GEOS-11441 DisabledServiceResourceFilter spams debugging logs with property accesses
- GEOS-11442 Cache availability of gdal_translate in gdal_translate based WCS output formats
- GEOS-11443 REST API does not take effect immediately due to 10 minute authentication cache
Bug:
- GEOS-11446 [INSPIRE] Incorrect behavior for unsupported languages
- GEOS-11462 500 error thrown when double adding a user to a group via REST with JDBC user/group services
Task:
- GEOS-11464 Update Jackson 2 libs from 2.17.1 to 2.17.2
For the complete list see 2.25.3 release notes.
Community Updates
Community module development:
- GEOS-10690 Task manager plugin is missing dependencies
- GEOS-11111 Open search for EO community module: STAC search page has wrong self link
- GEOS-11438 OpenSearch for EO/STAC lack the service configuration panel
- GEOS-11439 JDBCOpenSearch access should cache the list of type names in request scope
- GEOS-11445 OGCAPI ServiceDescriptors
- GEOS-11469 Datadir catalog loader does not decrypt HTTPStoreInfo passwords
Community modules are shared as source code to encourage collaboration. If a topic being explored is of interest to you, please contact the module developer to offer assistance.
About GeoServer 2.25 Series
Additional information on GeoServer 2.25 series:
- GeoServer 2.25 User Manual
- GeoServer 2024 Roadmap Plannings
- GeoServer 2024 Q3 Developer Update
- Raster Attribute Table extension
- Individual contributor clarification
Release notes: ( 2.25.3 | 2.25.2 | 2.25.1 | 2.25.0 | 2.25-RC )
Tutorials
- Using Binary Comparison Operators in GeoServer Filters
- Utilizing the Demo Section in Geoserver
- How to Implement Basic Security in Geoserver
- How to create Tile Layers with GeoServer
- How to style layers using GeoServer and QGIS
- How to Publish a GeoTIFF file in GeoServer
- A Comprehensive Guide to Publishing a Shapefile in GeoServer
- GeoServer About & Status - A Practical Guide
- GeoServer installation methods on Windows
- Introducing GeoSpatial Techno with a Video Tutorial