Using GeoServer 2.20.0 WPS write requests works as expected, but when updating to 2.22.5 I encounter problems.
Stack trace:
14 Aug 09:44:01 DEBUG [geoserver.wps] - Saving status ExecutionStatus [processName=gs:Import,
executionId=acffa0d4-9bde-4883-97d4-408420014ccf,
asynchronous=false,
phase=RUNNING,
progress=50.0,
userName=anonymous,
creationTime=Wed Aug 14 09:43:57 CEST 2024,
completionTime=null,
lastUpdated=Wed Aug 14 09:44:01 CEST 2024,
expirationDate=Wed Aug 14 09:48:57 CEST 2024,
estimatedCompletion=Wed Aug 14 09:48:44 CEST 2024,
nextPoll=Wed Aug 14 09:43:57 CEST 2024,
task=Retrieving/parsing process input: features,
exception=null,
nodeId=172.17.0.1]
14 Aug 09:44:01 DEBUG [geoserver.wps] - Saving status ExecutionStatus [processName=gs:Import,
executionId=acffa0d4-9bde-4883-97d4-408420014ccf,
asynchronous=false,
phase=FAILED,
progress=50.0,
userName=anonymous,
creationTime=Wed Aug 14 09:43:57 CEST 2024,
completionTime=Wed Aug 14 09:44:01 CEST 2024,
lastUpdated=Wed Aug 14 09:44:01 CEST 2024,
expirationDate=Wed Aug 14 09:48:57 CEST 2024,
estimatedCompletion=Wed Aug 14 09:48:44 CEST 2024,
nextPoll=Wed Aug 14 09:43:57 CEST 2024,
task=Retrieving/parsing process input: features,
exception=org.geotools.process.ProcessException: Operation unallowed with the current privileges,
nodeId=172.17.0.1]
14 Aug 09:44:01 ERROR [wps.executor] - Process execution failed
org.geotools.process.ProcessException: Operation unallowed with the current privileges
at org.geoserver.wps.gs.ImportProcess.checkAdminAccess(ImportProcess.java:296)
at org.geoserver.wps.gs.ImportProcess.executeAsAdminRequest(ImportProcess.java:202)
at org.geoserver.wps.gs.ImportProcess.execute(ImportProcess.java:174)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.geotools.process.factory.AnnotationDrivenProcessFactory$InvokeMethodProcess.execute(AnnotationDrivenProcessFactory.java:633)
at org.geoserver.wps.executor.ProcessStartupFilter$ProcessStartupWrapper.execute(ProcessStartupFilter.java:50)
at org.geoserver.wps.executor.DefaultProcessManager$ProcessCallable.call(DefaultProcessManager.java:222)
at org.geoserver.wps.executor.DefaultProcessManager$ProcessCallable.call(DefaultProcessManager.java:191)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
File geoserver_data/security/layers.properties contains:
*.*.r=*
foo.*.w=ROLE_ANONYMOUS
foo_monkey.*.w=ROLE_ANONYMOUS
foo_lizard.*.w=ROLE_ANONYMOUS
*.*.a=GROUP_ADMIN,ADMIN
mode=HIDE
File geoserver_data/security/services.properties contains:
wfs.Transaction=ROLE_WFS_WRITE
The file to be created is expected on this format:
foo_monkey:foobar_aed35ca0-75f1-4dbf-8081-746d63498204
How I should proceed?
I have tried adding
wps.ImportProcess=ROLE_ANONYMOUS
to file services.properties, as well as removing wfs.Transaction=ROLE_WFS_WRITE, but no avail.