Hi Nick, One more followup—based on your original email:
* > Adjust > extensions/guacamole-auth-header/src/main/java/org/apache/guacamole/auth/header/user/AuthenticatedUser.java > to override getUserGroups() to return the groups you're looking for. > I wasn't able to get that to work, as the compiler said "method does not override or implement a method from a supertype". But I was able to override getEffectiveUserGroups() and return a simple Set of Strings of group names, and that seems to be working in the way we want, so thanks for the pointers :). Kind regards, David On Fri, 28 Jun 2024 at 09:40, David Lomas <d...@pale-eds.co.uk> wrote: > Thanks Nick—the errors when building the stock header extension were: > > [ERROR] The project org.apache.guacamole:guacamole-auth-header:1.5.4 > (/home/test/guacamole-auth-header/pom.xml) has 1 error > [ERROR] 'dependencies.dependency.version' for > com.google.inject:guice:jar is missing. @ line 44, column 21 > > and: > > [ERROR] COMPILATION ERROR : > [INFO] ------------------------------------------------------------- > [ERROR] Source option 5 is no longer supported. Use 6 or later. > [ERROR] Target option 1.5 is no longer supported. Use 1.6 or later. > > I had assumed that I needed to target the version of Java installed: > > $ mvn --version > Apache Maven 3.6.3 > Maven home: /usr/share/maven > Java version: 11.0.23, vendor: Ubuntu, runtime: > /usr/lib/jvm/java-11-openjdk-amd64 > Default locale: en_GB, platform encoding: UTF-8 > OS name: "linux", version: "5.15.0-112-generic", arch: "amd64", family: > "unix" > > But having changed it to 8 / 1.8 from what you said, the extension now > compiles and loads. > > The pom for this extension doesn't include a version line for Guice, and > I've 'successfully' built and loaded with version 7 using source 8 / target > 1.8, which you seemed to suggest shouldn't work? I haven't actually tested > that the extension is working properly, only that it loads when guac > starts. But what version of Guice should I be using? Perhaps it's specified > somewhere else in the main project, not in this extension? > > Many thanks, > > David > > > On Fri, 28 Jun 2024 at 02:37, Nick Couchman <vn...@apache.org> wrote: > >> On Fri, Jun 21, 2024 at 6:03 AM David Lomas <d...@pale-eds.co.uk.invalid> >> wrote: >> >>> Thanks Nick—to test my basic setup, I tried copying that extension from >>> the 1.5.4 branch (to match the current version of gauc I'm running in >>> docker), and built it. I had to make 2 changes—not sure if this is >>> expected, but it required a <version>7.0.0</version> entry in the Guice >>> dependency (not sure if the latest version is correct), and I also had to >>> add these lines to the pom: >>> >>> <properties> >>> <maven.compiler.source>11</maven.compiler.source> >>> <maven.compiler.target>11</maven.compiler.target> >>> </properties> >>> >>> I was then able to compile and install the extension in >>> guacamole-home/extensions/ before rebuilding and restarting the >>> container. But during startup, I see this in the logs: >>> >>> guacamole_compose | 09:54:10.264 [localhost-startStop-1] ERROR >>> o.a.g.extension.ExtensionModule - Extension >>> "guacamole-auth-header-1.5.4.jar" could not be loaded: Authentication >>> provider class cannot be loaded (wrong version of API?). >>> >>> I'm guessing this (and the earlier changes I had to make (including >>> removing the <parent></parent> entry from the pom) is because I'm >>> trying to build this in isolation outside the main source tree; is that >>> right? If so, do I need to just install the whole client to build this >>> extension, or is it something else? >>> >>> >> It isn't so much that you're trying to build outside of the main code >> tree, it's more likely that the pom.xml changes you've made - in particular >> to the Guice version - are likely going to cause you to end up with very >> different code, and you'll probably need to load, not just the module >> you've compiled, but the entirety of the WAR file and other extensions, >> from code compiled with the same dependencies, particularly Guice and the >> Java target. >> >> I'm not sure what issues you were running into that caused you to bump >> the Guice version up, but the versions we've got in there, now, are very >> much designed to maintain Java 1.8 (Jara 8) compatibility. Once you go to >> Guice 7 you then are required to bump Java up to version 11, as you've >> found out, and both of those changes are going to cause widespread >> compatibility issues between the "stock" versions that we provide as >> downloads and anything you compile. >> >> -Nick >> >>>