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
>>
>>>

Reply via email to