Re: Odp: RE: Re: Re: Re: REST API - Create URL connection (Permission Denied)

2024-02-14 Thread Michael Jumper

On 2/14/24 04:33, i.no...@wp.pl wrote:

Hello,

Any idea how to solve the issue with URL? Thanks.

DEBUG o.a.g.rest.RESTExceptionMapper - Unexpected error
in REST endpoint.
Feb 10 15:24:36 server[104645]:
java.lang.NullPointerException: null

"POST /guacamole/api/session/data/mysql/connections
HTTP/1.1" 500 203



Open up browser dev tools and compare what your script is sending to the 
JSON that the browser sends for the same operation and look for 
differences. You may be missing some properties.


- Mike

-
To unsubscribe, e-mail: user-unsubscr...@guacamole.apache.org
For additional commands, e-mail: user-h...@guacamole.apache.org



Odp: RE: Re: Re: Re: REST API - Create URL connection (Permission Denied)

2024-02-14 Thread i . noska
Hello,   Any idea how to solve the issue with URL? Thanks.   DEBUG 
o.a.g.rest.RESTExceptionMapper - Unexpected error in REST endpoint.   Feb 10 
15:24:36 server[104645]: java.lang.NullPointerException: null   POST 
/guacamole/api/session/data/mysql/connections HTTP/1.1 500 203   --  
Regards  Marcin  
 Dnia 13 
lutego 2024 16:29 i.no...@wp.pl i.no...@wp.pl napisał(a):  Hi Russell, 
Nick, Team,   Could you help to solve this issue? Probably the URL is 
incorrect. Thank you in advance.    I added some echo lines to see 
output:  --     echo -e TOKEN: 
$TOKEN     echo -e RESPONSE: $RESPONSE     echo -e 
IDENTIFIER: $IDENTIFIER     echo -e Client Identifier: 
$CLIENT_IDENTIFIER   This is my result now:  ---  
TOKEN: C789F89578D3D7F7956307C26FD24410DEF12D4403495A9E2FBA43E31F92557D   
RESPONSE: {message:Unexpected internal 
error,translatableMessage:{key:APP.TEXT_UNTRANSLATED,variables:{MESSAGE:Unexpected
 internal 
error}},statusCode:null,expected:null,type:INTERNAL_ERROR}
  IDENTIFIER: null  Client Identifier:  Error creating connection.   Is is 
correct now? It looks like the RESPONSE curl URL is invalid?!  The 
permission denied disappeared, but another error appeared.--  
Best regards  Marcin   -   Dnia 
11 lutego 2024 22:53 i.no...@wp.pl i.no...@wp.pl napisał(a):  Hi 
Russell,   I have a .NET application that already uses bash scripts and I would 
like to maintain this standard if possible.  I checked provided GITHUB repo and 
I see that some updates were very long ago and the Readme.md file is empty - no 
documentation.   Thank you for your help.  --  Marcin   
---  
Dnia 11 lutego 2024 00:17 Russell Sayers russell.say...@gmail.com 
napisał(a):  Hi MK,   Is Python an option for you? I’ve used this API wrapper 
in the past:   github.com https://github.com/pschmitt/guacapy   Russ   On Sun, 
Feb 11, 2024 at 01:38   i.no...@wp.pli.no...@wp.pl  wrote:  I 
forgot to add the logs:   DEBUG o.a.g.rest.RESTExceptionMapper - Unexpected 
error in REST endpoint.   Feb 10 15:24:36 server[104645]: 
java.lang.NullPointerException: null   POST 
/guacamole/api/session/data/mysql/connections HTTP/1.1 500 203   
---  Regards  MK     Dnia 10 lutego 2024 
15:27   i.no...@wp.pli.no...@wp.pl  napisał(a):  Hi Nick,    Thank 
you for your response!  I modified the script according to your information.   
-- SCRIPT --  #!/bin/bash# Obtain 
the Guacamole authentication token  TOKEN=$(curl -s -X POST -H 
Content-Type: application/x-www-form-urlencoded -d 
username=guacadminpassword=guacadmin  localhost:8080 
http://localhost:8080/guacamole/api/tokens  | jq -r .authToken)   # 
Define the API endpoint for creating connections in Guacamole  
API_ENDPOINT= localhost:8080 
http://localhost:8080/guacamole/api/session/data/mysql/connections# 
Define the connection data in JSON format  CONNECTION_DATA={    
name: Connection name,    protocol: 
rdp,    parameters: {    hostname: 
10.194.53.45,    port: 3389,    
username: user,    password: 
password    }  }   # Make a POST request to create a new 
connection using the Guacamole API  RESPONSE=$(curl -s -X POST -H 
Content-Type: application/json -H Guacamole-Token: $TOKEN 
-d $CONNECTION_DATA $API_ENDPOINT)   # Extract the connection 
identifier from the response  IDENTIFIER=$(echo $RESPONSE | jq -r 
.identifier)   if [ $IDENTIFIER != null ]; then   
 # Construct the base64url-encoded client identifier    
CLIENT_IDENTIFIER=$(echo -n 
{\id\:\$IDENTIFIER\,\type\:\c\,\dataSource\:\mysql\}
 | base64 -w0 | tr +/ -_ | tr -d =)    URL= 
localhost:8080 http://localhost:8080/guacamole/#/client/$CLIENT_IDENTIFIER 
    echo Client Identifier: $CLIENT_IDENTIFIER    echo URL: 
$URL  else     echo -e TOKEN: $TOKEN     echo -e RESPONSE: 
$RESPONSE     echo -e IDENTIFIER: $IDENTIFIER     echo -e 
Client Identifier: $CLIENT_IDENTIFIER     echo Error creating 
connection.  fi  -- SCRIPT END --  
 I added some echo lines to see output:  
--     echo -e TOKEN: $TOKEN  
   echo -e RESPONSE: $RESPONSE     echo -e IDENTIFIER: 
$IDENTIFIER     echo -e Client Identifier: $CLIENT_IDENTIFIER   
This is my result now:  ---  TOKEN: 
C789F89578D3D7F7956307C26FD24410DEF12D4403495A9E2FBA43E31F92557D   RESPONSE: 
{message:Unexpected internal 
error,translatableMessage:{key:APP.TEXT_UNTRANSLATED,variables:{MESSAGE:Unexpected
 internal 
error}},statusCode:null,expected:null,type:INTERNAL_ERROR}
  IDENTIFIER: null  Client Identifier:  Error creating connection.   Is is 
correct now? It looks like the RESPONSE curl URL is invalid?!  The 
permission denied disappeared, but 

RE: Re: Re: Re: REST API - Create URL connection (Permission Denied)

2024-02-13 Thread i . noska
Hi Russell, Nick, Team,   Could you help to solve this issue? Probably the URL 
is incorrect. Thank you in advance.    I added some echo lines to see 
output:  --     echo -e TOKEN: 
$TOKEN     echo -e RESPONSE: $RESPONSE     echo -e 
IDENTIFIER: $IDENTIFIER     echo -e Client Identifier: 
$CLIENT_IDENTIFIER   This is my result now:  ---  
TOKEN: C789F89578D3D7F7956307C26FD24410DEF12D4403495A9E2FBA43E31F92557D   
RESPONSE: {message:Unexpected internal 
error,translatableMessage:{key:APP.TEXT_UNTRANSLATED,variables:{MESSAGE:Unexpected
 internal 
error}},statusCode:null,expected:null,type:INTERNAL_ERROR}
  IDENTIFIER: null  Client Identifier:  Error creating connection.   Is is 
correct now? It looks like the RESPONSE curl URL is invalid?!  The 
permission denied disappeared, but another error appeared.--  
Best regards  Marcin   -   Dnia 
11 lutego 2024 22:53 i.no...@wp.pl i.no...@wp.pl napisał(a):  Hi 
Russell,   I have a .NET application that already uses bash scripts and I would 
like to maintain this standard if possible.  I checked provided GITHUB repo and 
I see that some updates were very long ago and the Readme.md file is empty - no 
documentation.   Thank you for your help.  --  Marcin   
---  
Dnia 11 lutego 2024 00:17 Russell Sayers russell.say...@gmail.com 
napisał(a):  Hi MK,   Is Python an option for you? I’ve used this API wrapper 
in the past:   github.com https://github.com/pschmitt/guacapy   Russ   On Sun, 
Feb 11, 2024 at 01:38   i.no...@wp.pli.no...@wp.pl  wrote:  I 
forgot to add the logs:   DEBUG o.a.g.rest.RESTExceptionMapper - Unexpected 
error in REST endpoint.   Feb 10 15:24:36 server[104645]: 
java.lang.NullPointerException: null   POST 
/guacamole/api/session/data/mysql/connections HTTP/1.1 500 203   
---  Regards  MK     Dnia 10 lutego 2024 
15:27   i.no...@wp.pli.no...@wp.pl  napisał(a):  Hi Nick,    Thank 
you for your response!  I modified the script according to your information.   
-- SCRIPT --  #!/bin/bash# Obtain 
the Guacamole authentication token  TOKEN=$(curl -s -X POST -H 
Content-Type: application/x-www-form-urlencoded -d 
username=guacadminpassword=guacadmin  localhost:8080 
http://localhost:8080/guacamole/api/tokens  | jq -r .authToken)   # 
Define the API endpoint for creating connections in Guacamole  
API_ENDPOINT= localhost:8080 
http://localhost:8080/guacamole/api/session/data/mysql/connections# 
Define the connection data in JSON format  CONNECTION_DATA={    
name: Connection name,    protocol: 
rdp,    parameters: {    hostname: 
10.194.53.45,    port: 3389,    
username: user,    password: 
password    }  }   # Make a POST request to create a new 
connection using the Guacamole API  RESPONSE=$(curl -s -X POST -H 
Content-Type: application/json -H Guacamole-Token: $TOKEN 
-d $CONNECTION_DATA $API_ENDPOINT)   # Extract the connection 
identifier from the response  IDENTIFIER=$(echo $RESPONSE | jq -r 
.identifier)   if [ $IDENTIFIER != null ]; then   
 # Construct the base64url-encoded client identifier    
CLIENT_IDENTIFIER=$(echo -n 
{\id\:\$IDENTIFIER\,\type\:\c\,\dataSource\:\mysql\}
 | base64 -w0 | tr +/ -_ | tr -d =)    URL= 
localhost:8080 http://localhost:8080/guacamole/#/client/$CLIENT_IDENTIFIER 
    echo Client Identifier: $CLIENT_IDENTIFIER    echo URL: 
$URL  else     echo -e TOKEN: $TOKEN     echo -e RESPONSE: 
$RESPONSE     echo -e IDENTIFIER: $IDENTIFIER     echo -e 
Client Identifier: $CLIENT_IDENTIFIER     echo Error creating 
connection.  fi  -- SCRIPT END --  
 I added some echo lines to see output:  
--     echo -e TOKEN: $TOKEN  
   echo -e RESPONSE: $RESPONSE     echo -e IDENTIFIER: 
$IDENTIFIER     echo -e Client Identifier: $CLIENT_IDENTIFIER   
This is my result now:  ---  TOKEN: 
C789F89578D3D7F7956307C26FD24410DEF12D4403495A9E2FBA43E31F92557D   RESPONSE: 
{message:Unexpected internal 
error,translatableMessage:{key:APP.TEXT_UNTRANSLATED,variables:{MESSAGE:Unexpected
 internal 
error}},statusCode:null,expected:null,type:INTERNAL_ERROR}
  IDENTIFIER: null  Client Identifier:  Error creating connection.   Is is 
correct now? It looks like the RESPONSE curl URL is invalid?!  The 
permission denied disappeared, but another error appeared.  
-  Thank you for your help.  --  MK  
Dnia 09 lutego 2024 16:47 Nick Couchman   vn...@apache.org  napisał(a): 
 On Fri, Feb 9, 2024 at 6:46 AM   i.no...@wp.pli.no...@wp.pl  
wrote:  Hello,   Ive installed Apache Guacamole v.1.5.4 on Linux CentOS 
8.5  - Im able to login to GUI, create users, connection, etc.   I 
installed database (MySQL) as well (to manage users, 

Odp: Re: Re: Re: REST API - Create URL connection (Permission Denied)

2024-02-11 Thread i . noska
Hi Russell,   I have a .NET application that already uses bash scripts and I 
would like to maintain this standard if possible.  I checked provided GITHUB 
repo and I see that some updates were very long ago and the Readme.md file is 
empty - no documentation.   Thank you for your help.  --  Marcin  
--- 
Dnia 11 lutego 2024 00:17 Russell Sayers russell.say...@gmail.com 
napisał(a):  Hi MK,   Is Python an option for you? I’ve used this API wrapper 
in the past:   github.com https://github.com/pschmitt/guacapy   Russ   On Sun, 
Feb 11, 2024 at 01:38   i.no...@wp.pli.no...@wp.pl  wrote:  I 
forgot to add the logs:   DEBUG o.a.g.rest.RESTExceptionMapper - Unexpected 
error in REST endpoint.   Feb 10 15:24:36 server[104645]: 
java.lang.NullPointerException: null   POST 
/guacamole/api/session/data/mysql/connections HTTP/1.1 500 203   
---  Regards  MK     Dnia 10 lutego 2024 
15:27   i.no...@wp.pli.no...@wp.pl  napisał(a):  Hi Nick,    Thank 
you for your response!  I modified the script according to your information.   
-- SCRIPT --  #!/bin/bash# Obtain 
the Guacamole authentication token  TOKEN=$(curl -s -X POST -H 
Content-Type: application/x-www-form-urlencoded -d 
username=guacadminpassword=guacadmin  localhost:8080 
http://localhost:8080/guacamole/api/tokens  | jq -r .authToken)   # 
Define the API endpoint for creating connections in Guacamole  
API_ENDPOINT= localhost:8080 
http://localhost:8080/guacamole/api/session/data/mysql/connections# 
Define the connection data in JSON format  CONNECTION_DATA={    
name: Connection name,    protocol: 
rdp,    parameters: {    hostname: 
10.194.53.45,    port: 3389,    
username: user,    password: 
password    }  }   # Make a POST request to create a new 
connection using the Guacamole API  RESPONSE=$(curl -s -X POST -H 
Content-Type: application/json -H Guacamole-Token: $TOKEN 
-d $CONNECTION_DATA $API_ENDPOINT)   # Extract the connection 
identifier from the response  IDENTIFIER=$(echo $RESPONSE | jq -r 
.identifier)   if [ $IDENTIFIER != null ]; then   
 # Construct the base64url-encoded client identifier    
CLIENT_IDENTIFIER=$(echo -n 
{\id\:\$IDENTIFIER\,\type\:\c\,\dataSource\:\mysql\}
 | base64 -w0 | tr +/ -_ | tr -d =)    URL= 
localhost:8080 http://localhost:8080/guacamole/#/client/$CLIENT_IDENTIFIER 
    echo Client Identifier: $CLIENT_IDENTIFIER    echo URL: 
$URL  else     echo -e TOKEN: $TOKEN     echo -e RESPONSE: 
$RESPONSE     echo -e IDENTIFIER: $IDENTIFIER     echo -e 
Client Identifier: $CLIENT_IDENTIFIER     echo Error creating 
connection.  fi  -- SCRIPT END --  
 I added some echo lines to see output:  
--     echo -e TOKEN: $TOKEN  
   echo -e RESPONSE: $RESPONSE     echo -e IDENTIFIER: 
$IDENTIFIER     echo -e Client Identifier: $CLIENT_IDENTIFIER   
This is my result now:  ---  TOKEN: 
C789F89578D3D7F7956307C26FD24410DEF12D4403495A9E2FBA43E31F92557D   RESPONSE: 
{message:Unexpected internal 
error,translatableMessage:{key:APP.TEXT_UNTRANSLATED,variables:{MESSAGE:Unexpected
 internal 
error}},statusCode:null,expected:null,type:INTERNAL_ERROR}
  IDENTIFIER: null  Client Identifier:  Error creating connection.   Is is 
correct now? It looks like the RESPONSE curl URL is invalid?!  The 
permission denied disappeared, but another error appeared.  
-  Thank you for your help.  --  MK  
Dnia 09 lutego 2024 16:47 Nick Couchman   vn...@apache.org  napisał(a): 
 On Fri, Feb 9, 2024 at 6:46 AM   i.no...@wp.pli.no...@wp.pl  
wrote:  Hello,   Ive installed Apache Guacamole v.1.5.4 on Linux CentOS 
8.5  - Im able to login to GUI, create users, connection, etc.   I 
installed database (MySQL) as well (to manage users, connection) with all 
needed *.jar files according to doc  guacamole.apache.org 
https://guacamole.apache.org/doc/gug/jdbc-auth.html   After that, Im able 
to login as guacadmin user to GUI and manage connections etc.   
Now, I want to create URL to direct connection to my VM, but I found errors 
like below:   --  SCRIPT 
-  #!/bin/bashTOKEN=$(curl -s -X POST 
-H Content-Type: application/x-www-form-urlencoded -d 
username=guacadminpassword=guacadmin  localhost:8080 
http://localhost:8080/guacamole/api/tokens  | jq -r .authToken)   # 
Endpoint API Guacamole  API_ENDPOINT= localhost:8080 
http://localhost:8080/guacamole/api/session/data/mysql/connections
CONNECTION_DATA={    name: Connection name,    
protocol: rdp,    parameters: {    
hostname: 10.194.53.45,    port: 
3389,    username: user,    
password: password    }  }   RESPONSE=$(curl -s -X 
POST -H Content-Type: application/json -H Authorization: Bearer 
$TOKEN -d 

Re: Re: Re: REST API - Create URL connection (Permission Denied)

2024-02-10 Thread Russell Sayers
Hi MK,

Is Python an option for you? I’ve used this API wrapper in the past:
https://github.com/pschmitt/guacapy

Russ

On Sun, Feb 11, 2024 at 01:38 i.no...@wp.pl  wrote:

> I forgot to add the logs:
>
> DEBUG o.a.g.rest.RESTExceptionMapper - Unexpected error in REST endpoint.
> Feb 10 15:24:36 server[104645]: java.lang.NullPointerException: null
>
> "POST /guacamole/api/session/data/mysql/connections HTTP/1.1" 500 203
>
> ---
> Regards
> MK
>
> 
>
> Dnia 10 lutego 2024 15:27 i.no...@wp.pl  napisał(a):
>
> Hi Nick,
>
> Thank you for your response!
> I modified the script according to your information.
>
> *-- SCRIPT --*
> #!/bin/bash
>
> # Obtain the Guacamole authentication token
> TOKEN=$(curl -s -X POST -H "Content-Type:
> application/x-www-form-urlencoded" -d
> "username=guacadmin=guacadmin"
> http://localhost:8080/guacamole/api/tokens | jq -r '.authToken')
>
> # Define the API endpoint for creating connections in Guacamole
> API_ENDPOINT="
> http://localhost:8080/guacamole/api/session/data/mysql/connections;
>
> # Define the connection data in JSON format
> CONNECTION_DATA='{
>   "name": "Connection name",
>   "protocol": "rdp",
>   "parameters": {
>   "hostname": "10.194.53.45",
>   "port": "3389",
>   "username": "user",
>   "password": "password"
>   }
> }'
>
> # Make a POST request to create a new connection using the Guacamole API
> RESPONSE=$(curl -s -X POST -H "Content-Type: application/json" -H
> "Guacamole-Token: $TOKEN" -d "$CONNECTION_DATA" $API_ENDPOINT)
>
> # Extract the connection identifier from the response
> IDENTIFIER=$(echo "$RESPONSE" | jq -r '.identifier')
>
> if [ "$IDENTIFIER" != "null" ]; then
>   # Construct the base64url-encoded client identifier
>   CLIENT_IDENTIFIER=$(echo -n
> "{\"id\":\"$IDENTIFIER\",\"type\":\"c\",\"dataSource\":\"mysql\"}" | base64
> -w0 | tr '+/' '-_' | tr -d '=')
>   URL="http://localhost:8080/guacamole/#/client/$CLIENT_IDENTIFIER;
>   echo "Client Identifier: $CLIENT_IDENTIFIER"
>   echo "URL: $URL"
> else
>echo -e "TOKEN: $TOKEN"
>echo -e "RESPONSE: $RESPONSE"
>echo -e "IDENTIFIER: $IDENTIFIER"
>echo -e "Client Identifier: $CLIENT_IDENTIFIER"
>echo "Error creating connection."
> fi
> -- SCRIPT END --
>
> *I added some "echo" lines to see output:*
> *--*
>echo -e "TOKEN: $TOKEN"
>echo -e "RESPONSE: $RESPONSE"
>echo -e "IDENTIFIER: $IDENTIFIER"
>echo -e "Client Identifier: $CLIENT_IDENTIFIER"
>
> *This is my result now:*
> *---*
> TOKEN: C789F89578D3D7F7956307C26FD24410DEF12D4403495A9E2FBA43E31F92557D
> RESPONSE: {"message":"Unexpected internal
> error","translatableMessage":{"key":"APP.TEXT_UNTRANSLATED","variables":{"MESSAGE":"Unexpected
> internal error"}},"statusCode":null,"expected":null,"type":"INTERNAL_ERROR"}
> IDENTIFIER: null
> Client Identifier:
> Error creating connection.
>
> Is is correct now? It looks like the "RESPONSE" curl URL is invalid?!
> The "permission denied" disappeared, but another error appeared.
> *-*
> *Thank you for your help.*
> --
> MK
>
>
>
>
> Dnia 09 lutego 2024 16:47 Nick Couchman  napisał(a):
>
> On Fri, Feb 9, 2024 at 6:46 AM i.no...@wp.pl  wrote:
>
> Hello,
>
> I've installed Apache Guacamole v.1.5.4 on Linux CentOS 8.5  - I'm able to
> login to GUI, create users, connection, etc.
> I installed database (MySQL) as well (to manage users, connection) with
> all needed *.jar files according to doc
> https://guacamole.apache.org/doc/gug/jdbc-auth.html
>
> After that, I'm able to login as ""guacadmin" user to GUI and manage
> connections etc.
>
> Now, I want to create URL to direct connection to my VM, but I found
> errors like below:
>
> --  SCRIPT
> -
> #!/bin/bash
>
> TOKEN=$(curl -s -X POST -H "Content-Type:
> application/x-www-form-urlencoded" -d
> "username=guacadmin=guacadmin"
> http://localhost:8080/guacamole/api/tokens | jq -r '.authToken')
>
> # Endpoint API Guacamole
> API_ENDPOINT="
> http://localhost:8080/guacamole/api/session/data/mysql/connections;
>
> CONNECTION_DATA='{
>   "name": "Connection name",
>   "protocol": "rdp",
>   "parameters": {
>   "hostname": "10.194.53.45",
>   "port": "3389",
>   "username": "user",
>   "password": "password"
>   }
> }'
>
> RESPONSE=$(curl -s -X POST -H "Content-Type: application/json" -H
> "Authorization: Bearer $TOKEN" -d "$CONNECTION_DATA" $API_ENDPOINT)
>
>
> I don't think you're using the correct header, here for the Guacamole
> authentication token - you should be passing a header called
> "Guacamole-Token" with the Guacamole authorization token. Guacamole does
> not generally use the "Authorization" header.
>
>
>
> CONNECTION_ID=$(echo $RESPONSE | jq -r '.identifier')
>
> if [ "$CONNECTION_ID" != "null" ]; then
>   URL="

Odp: Re: Re: REST API - Create URL connection (Permission Denied)

2024-02-10 Thread i . noska
I forgot to add the logs:   DEBUG o.a.g.rest.RESTExceptionMapper - Unexpected 
error in REST endpoint.   Feb 10 15:24:36 server[104645]: 
java.lang.NullPointerException: null   POST 
/guacamole/api/session/data/mysql/connections HTTP/1.1 500 203   
--- Regards  MK   Dnia 10 lutego 2024 15:27 
i.no...@wp.pl i.no...@wp.pl napisał(a):  Hi Nick,    Thank you for your 
response!  I modified the script according to your information.   
-- SCRIPT --  #!/bin/bash# Obtain 
the Guacamole authentication token  TOKEN=$(curl -s -X POST -H 
Content-Type: application/x-www-form-urlencoded -d 
username=guacadminpassword=guacadmin  localhost:8080 
http://localhost:8080/guacamole/api/tokens  | jq -r .authToken)   # 
Define the API endpoint for creating connections in Guacamole  
API_ENDPOINT= localhost:8080 
http://localhost:8080/guacamole/api/session/data/mysql/connections# 
Define the connection data in JSON format  CONNECTION_DATA={    
name: Connection name,    protocol: 
rdp,    parameters: {    hostname: 
10.194.53.45,    port: 3389,    
username: user,    password: 
password    }  }   # Make a POST request to create a new 
connection using the Guacamole API  RESPONSE=$(curl -s -X POST -H 
Content-Type: application/json -H Guacamole-Token: $TOKEN 
-d $CONNECTION_DATA $API_ENDPOINT)   # Extract the connection 
identifier from the response  IDENTIFIER=$(echo $RESPONSE | jq -r 
.identifier)   if [ $IDENTIFIER != null ]; then   
 # Construct the base64url-encoded client identifier    
CLIENT_IDENTIFIER=$(echo -n 
{\id\:\$IDENTIFIER\,\type\:\c\,\dataSource\:\mysql\}
 | base64 -w0 | tr +/ -_ | tr -d =)    URL= 
localhost:8080 http://localhost:8080/guacamole/#/client/$CLIENT_IDENTIFIER 
    echo Client Identifier: $CLIENT_IDENTIFIER    echo URL: 
$URL  else     echo -e TOKEN: $TOKEN     echo -e RESPONSE: 
$RESPONSE     echo -e IDENTIFIER: $IDENTIFIER     echo -e 
Client Identifier: $CLIENT_IDENTIFIER     echo Error creating 
connection.  fi  -- SCRIPT END --  
 I added some echo lines to see output:  
--     echo -e TOKEN: $TOKEN  
   echo -e RESPONSE: $RESPONSE     echo -e IDENTIFIER: 
$IDENTIFIER     echo -e Client Identifier: $CLIENT_IDENTIFIER   
This is my result now:  ---  TOKEN: 
C789F89578D3D7F7956307C26FD24410DEF12D4403495A9E2FBA43E31F92557D   RESPONSE: 
{message:Unexpected internal 
error,translatableMessage:{key:APP.TEXT_UNTRANSLATED,variables:{MESSAGE:Unexpected
 internal 
error}},statusCode:null,expected:null,type:INTERNAL_ERROR}
  IDENTIFIER: null  Client Identifier:  Error creating connection.   Is is 
correct now? It looks like the RESPONSE curl URL is invalid?!  The 
permission denied disappeared, but another error appeared.  
-  Thank you for your help.  --  MK  
Dnia 09 lutego 2024 16:47 Nick Couchman vn...@apache.org napisał(a):  
On Fri, Feb 9, 2024 at 6:46 AM   i.no...@wp.pli.no...@wp.pl  wrote: 
 Hello,   Ive installed Apache Guacamole v.1.5.4 on Linux CentOS 8.5  - 
Im able to login to GUI, create users, connection, etc.   I installed 
database (MySQL) as well (to manage users, connection) with all needed *.jar 
files according to doc  guacamole.apache.org 
https://guacamole.apache.org/doc/gug/jdbc-auth.html   After that, Im able 
to login as guacadmin user to GUI and manage connections etc.   
Now, I want to create URL to direct connection to my VM, but I found errors 
like below:   --  SCRIPT 
-  #!/bin/bashTOKEN=$(curl -s -X POST 
-H Content-Type: application/x-www-form-urlencoded -d 
username=guacadminpassword=guacadmin  localhost:8080 
http://localhost:8080/guacamole/api/tokens  | jq -r .authToken)   # 
Endpoint API Guacamole  API_ENDPOINT= localhost:8080 
http://localhost:8080/guacamole/api/session/data/mysql/connections
CONNECTION_DATA={    name: Connection name,    
protocol: rdp,    parameters: {    
hostname: 10.194.53.45,    port: 
3389,    username: user,    
password: password    }  }   RESPONSE=$(curl -s -X 
POST -H Content-Type: application/json -H Authorization: Bearer 
$TOKEN -d $CONNECTION_DATA $API_ENDPOINT)I dont think 
youre using the correct header, here for the Guacamole authentication 
token - you should be passing a header called Guacamole-Token with 
the Guacamole authorization token. Guacamole does not generally use the 
Authorization header.      CONNECTION_ID=$(echo $RESPONSE | jq -r 
.identifier)   if [ $CONNECTION_ID != null ]; 
then    URL= localhost:8080 
http://localhost:8080/guacamole/#/client/$CONNECTION_ID?token=$TOKEN     
echo Connection ID: $CONNECTION_ID    echo URL: $URL  else  
  echo Error creating connection.  fiTwo issues, here:  * 
Weve removed the ?token= parameter in recent versions in favor of a model 
that 

Re: Re: REST API - Create URL connection (Permission Denied)

2024-02-10 Thread i . noska
Hi Nick,    Thank you for your response!  I modified the script according to 
your information.   -- SCRIPT --  
#!/bin/bash# Obtain the Guacamole authentication token  TOKEN=$(curl -s -X 
POST -H Content-Type: application/x-www-form-urlencoded -d 
username=guacadminpassword=guacadmin  localhost:8080 
http://localhost:8080/guacamole/api/tokens  | jq -r .authToken)   # 
Define the API endpoint for creating connections in Guacamole  
API_ENDPOINT= localhost:8080 
http://localhost:8080/guacamole/api/session/data/mysql/connections# 
Define the connection data in JSON format  CONNECTION_DATA={    
name: Connection name,    protocol: 
rdp,    parameters: {    hostname: 
10.194.53.45,    port: 3389,    
username: user,    password: 
password    }  }   # Make a POST request to create a new 
connection using the Guacamole API  RESPONSE=$(curl -s -X POST -H 
Content-Type: application/json -H Guacamole-Token: $TOKEN 
-d $CONNECTION_DATA $API_ENDPOINT)   # Extract the connection 
identifier from the response  IDENTIFIER=$(echo $RESPONSE | jq -r 
.identifier)   if [ $IDENTIFIER != null ]; then   
 # Construct the base64url-encoded client identifier    
CLIENT_IDENTIFIER=$(echo -n 
{\id\:\$IDENTIFIER\,\type\:\c\,\dataSource\:\mysql\}
 | base64 -w0 | tr +/ -_ | tr -d =)    URL= 
localhost:8080 http://localhost:8080/guacamole/#/client/$CLIENT_IDENTIFIER 
    echo Client Identifier: $CLIENT_IDENTIFIER    echo URL: 
$URL  else     echo -e TOKEN: $TOKEN     echo -e RESPONSE: 
$RESPONSE     echo -e IDENTIFIER: $IDENTIFIER     echo -e 
Client Identifier: $CLIENT_IDENTIFIER     echo Error creating 
connection.  fi  -- SCRIPT END --  
 I added some echo lines to see output:  
--    echo -e TOKEN: $TOKEN   
  echo -e RESPONSE: $RESPONSE     echo -e IDENTIFIER: 
$IDENTIFIER     echo -e Client Identifier: $CLIENT_IDENTIFIER   
This is my result now:  --- TOKEN: 
C789F89578D3D7F7956307C26FD24410DEF12D4403495A9E2FBA43E31F92557D   RESPONSE: 
{message:Unexpected internal 
error,translatableMessage:{key:APP.TEXT_UNTRANSLATED,variables:{MESSAGE:Unexpected
 internal 
error}},statusCode:null,expected:null,type:INTERNAL_ERROR}
  IDENTIFIER: null  Client Identifier:  Error creating connection.   Is is 
correct now? It looks like the RESPONSE curl URL is invalid?!  The 
permission denied disappeared, but another error appeared.  
-  Thank you for your help.  --  MK 
Dnia 09 lutego 2024 16:47 Nick Couchman vn...@apache.org napisał(a):  
On Fri, Feb 9, 2024 at 6:46 AM   i.no...@wp.pli.no...@wp.pl  wrote: 
 Hello,   Ive installed Apache Guacamole v.1.5.4 on Linux CentOS 8.5  - 
Im able to login to GUI, create users, connection, etc.   I installed 
database (MySQL) as well (to manage users, connection) with all needed *.jar 
files according to doc  guacamole.apache.org 
https://guacamole.apache.org/doc/gug/jdbc-auth.html   After that, Im able 
to login as guacadmin user to GUI and manage connections etc.   
Now, I want to create URL to direct connection to my VM, but I found errors 
like below:   --  SCRIPT 
-  #!/bin/bashTOKEN=$(curl -s -X POST 
-H Content-Type: application/x-www-form-urlencoded -d 
username=guacadminpassword=guacadmin  localhost:8080 
http://localhost:8080/guacamole/api/tokens  | jq -r .authToken)   # 
Endpoint API Guacamole  API_ENDPOINT= localhost:8080 
http://localhost:8080/guacamole/api/session/data/mysql/connections
CONNECTION_DATA={    name: Connection name,    
protocol: rdp,    parameters: {    
hostname: 10.194.53.45,    port: 
3389,    username: user,    
password: password    }  }   RESPONSE=$(curl -s -X 
POST -H Content-Type: application/json -H Authorization: Bearer 
$TOKEN -d $CONNECTION_DATA $API_ENDPOINT)I dont think 
youre using the correct header, here for the Guacamole authentication 
token - you should be passing a header called Guacamole-Token with 
the Guacamole authorization token. Guacamole does not generally use the 
Authorization header.      CONNECTION_ID=$(echo $RESPONSE | jq -r 
.identifier)   if [ $CONNECTION_ID != null ]; 
then    URL= localhost:8080 
http://localhost:8080/guacamole/#/client/$CONNECTION_ID?token=$TOKEN     
echo Connection ID: $CONNECTION_ID    echo URL: $URL  else  
  echo Error creating connection.  fiTwo issues, here:  * 
Weve removed the ?token= parameter in recent versions in favor of a model 
that prefers/uses a header, instead, so you should leave off the token= part of 
this.  * Your path for the connection (/client/$CONNECTION_ID) wont work - 
the client identifier is not the same as the connection ID, but is, instead, a 
base 64 encoding of the type of connection (connection or connection group), 
the data source (pgsql, mysql, etc.), and the connection identifier. See:  

Re: REST API - Create URL connection (Permission Denied)

2024-02-09 Thread Nick Couchman
On Fri, Feb 9, 2024 at 6:46 AM i.no...@wp.pl  wrote:

> Hello,
>
> I've installed Apache Guacamole v.1.5.4 on Linux CentOS 8.5  - I'm able to
> login to GUI, create users, connection, etc.
> I installed database (MySQL) as well (to manage users, connection) with
> all needed *.jar files according to doc
> https://guacamole.apache.org/doc/gug/jdbc-auth.html
>
> After that, I'm able to login as ""guacadmin" user to GUI and manage
> connections etc.
>
> Now, I want to create URL to direct connection to my VM, but I found
> errors like below:
>
> --  SCRIPT
> -
> #!/bin/bash
>
> TOKEN=$(curl -s -X POST -H "Content-Type:
> application/x-www-form-urlencoded" -d
> "username=guacadmin=guacadmin"
> http://localhost:8080/guacamole/api/tokens | jq -r '.authToken')
>
> # Endpoint API Guacamole
> API_ENDPOINT="
> http://localhost:8080/guacamole/api/session/data/mysql/connections;
>
> CONNECTION_DATA='{
>   "name": "Connection name",
>   "protocol": "rdp",
>   "parameters": {
>   "hostname": "10.194.53.45",
>   "port": "3389",
>   "username": "user",
>   "password": "password"
>   }
> }'
>
> RESPONSE=$(curl -s -X POST -H "Content-Type: application/json" -H
> "Authorization: Bearer $TOKEN" -d "$CONNECTION_DATA" $API_ENDPOINT)
>
>
I don't think you're using the correct header, here for the Guacamole
authentication token - you should be passing a header called
"Guacamole-Token" with the Guacamole authorization token. Guacamole does
not generally use the "Authorization" header.


> CONNECTION_ID=$(echo $RESPONSE | jq -r '.identifier')
>
> if [ "$CONNECTION_ID" != "null" ]; then
>   URL="
> http://localhost:8080/guacamole/#/client/$CONNECTION_ID?token=$TOKEN;
>   echo "Connection ID: $CONNECTION_ID"
>   echo "URL: $URL"
> else
>   echo "Error creating connection."
> fi
>
>
Two issues, here:
* We've removed the ?token= parameter in recent versions in favor of a
model that prefers/uses a header, instead, so you should leave off the
token= part of this.
* Your path for the connection (/client/$CONNECTION_ID) won't work - the
client identifier is not the same as the connection ID, but is, instead, a
base 64 encoding of the type of connection (connection or connection
group), the data source (pgsql, mysql, etc.), and the connection
identifier. See:
https://github.com/apache/guacamole-client/blob/22fe53fde50fd139cb86091912e1ae50d348add8/guacamole/src/main/frontend/src/app/navigation/types/ClientIdentifier.js#L40-L71

-Nick

>


REST API - Create URL connection (Permission Denied) - version 1.5.4

2024-02-09 Thread i . noska
Hello,   Ive installed Apache Guacamole v.1.5.4 on Linux CentOS 8.5  - 
Im able to login to GUI, create users, connection, etc.   I installed 
database (MySQL) as well (to manage users, connection) with all needed *.jar 
files according to doc  guacamole.apache.org 
https://guacamole.apache.org/doc/gug/jdbc-auth.html   After that, Im able 
to login as guacadmin user to GUI and manage connections etc.   
Now, I want to create URL to direct connection to my VM, but I found errors 
like below:   --  SCRIPT 
-  #!/bin/bash   TOKEN=$(curl -s -X POST -H 
Content-Type: application/x-www-form-urlencoded -d 
username=guacadminpassword=guacadmin   localhost:8080 
http://localhost:8080/guacamole/api/tokens   | jq -r .authToken)   # 
Endpoint API Guacamole  API_ENDPOINT= localhost:8080 
http://localhost:8080/guacamole/api/session/data/mysql/connections
CONNECTION_DATA={    name: Connection name,    
protocol: rdp,    parameters: {    
hostname: 10.194.53.45,    port: 
3389,    username: user,    
password: password    }  }   RESPONSE=$(curl -s -X 
POST -H Content-Type: application/json -H Authorization: Bearer 
$TOKEN -d $CONNECTION_DATA $API_ENDPOINT)   CONNECTION_ID=$(echo 
$RESPONSE | jq -r .identifier)   if [ $CONNECTION_ID != 
null ]; then    URL= localhost:8080 
http://localhost:8080/guacamole/#/client/$CONNECTION_ID?token=$TOKEN     
echo Connection ID: $CONNECTION_ID    echo URL: $URL  else  
  echo Error creating connection.  fi   
-- OUTPUT   
Response: {message:Permission 
Denied.,translatableMessage:{key:APP.TEXT_UNTRANSLATED,variables:{MESSAGE:Permission
 
Denied.}},statusCode:null,expected:null,type:PERMISSION_DENIED}
  Error creating connection.  -- OUTPUT  END 
---  -- L O G S 
--  Apache Tomcat  system messages:   
0:0:0:0:0:0:0:1 - - [09/Feb/2024:12:32:36 +0100] GET 
/guacamole/api/session/data/mysql/users/self HTTP/1.1 403 192  
0:0:0:0:0:0:0:1 - - [09/Feb/2024:12:32:36 +0100] GET 
/guacamole/api/session/data/mysql/users/self HTTP/1.1 403 192Feb  9 
12:32:36 server[90877]: 12:32:36.207 [http-nio-8080-exec-7] DEBUG 
o.a.i.t.jdbc.JdbcTransaction - Committing JDBC Connection 
[com.mysql.cj.jdbc.ConnectionImpl@7c9de5c2]  Feb  9 12:32:36 server[90877]: 
12:32:36.212 [http-nio-8080-exec-7] DEBUG o.a.i.t.jdbc.JdbcTransaction - 
Resetting autocommit to true on JDBC Connection 
[com.mysql.cj.jdbc.ConnectionImpl@7c9de5c2]  Feb  9 12:32:36 server[90877]: 
12:32:36.213 [http-nio-8080-exec-7] DEBUG o.a.i.t.jdbc.JdbcTransaction - 
Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7c9de5c2]  Feb  9 
12:32:36 server[90877]: 12:32:36.213 [http-nio-8080-exec-7] DEBUG 
o.a.i.d.pooled.PooledDataSource - Testing connection 2090722754 ...  Feb  9 
12:32:36 server[90877]: 12:32:36.214 [http-nio-8080-exec-7] DEBUG 
o.a.i.d.pooled.PooledDataSource - Connection 2090722754 is GOOD!  Feb  9 
12:32:36 server[90877]: 12:32:36.214 [http-nio-8080-exec-7] DEBUG 
o.a.i.d.pooled.PooledDataSource - Returned connection 2090722754 to pool.  Feb  
9 12:32:36 server[90877]: 12:32:36.214 [http-nio-8080-exec-7] DEBUG 
o.a.g.r.auth.AuthenticationService - Login was successful for user 
guacadmin.  Feb  9 12:32:36 server[90877]: 12:32:36.230 
[http-nio-8080-exec-8] DEBUG o.a.g.rest.RESTExceptionMapper - Client request 
rejected: Permission Denied.  -- L O G S END 
--   MESSAGE:  DEBUG 
o.a.g.rest.RESTExceptionMapper - Client request rejected: Permission Denied.
-- DATABASE INFO (Permission)   
mysql SELECT * FROM guacamole_entity JOIN guacamole_user_permission ON 
guacamole_entity.entity_id = guacamole_user_permission.entity_id WHERE 
guacamole_entity.name = guacadmin;  
+---+---+--+---+--++  | 
entity_id | name  | type | entity_id | affected_user_id | permission |  
+---+---+--+---+--++  | 
    1 | guacadmin | USER | 1 |    1 | READ   |  |   
  1 | guacadmin | USER | 1 |    1 | UPDATE |  | 
    1 | guacadmin | USER | 1 |    1 | ADMINISTER |  |   
  1 | guacadmin | USER | 1 |    2 | READ   |  | 
1 | guacadmin | USER | 1 |    2 | UPDATE |  | 1 
| guacadmin | USER | 1 |    2 | DELETE |  | 1 | 
guacadmin | USER | 1 |    2 | ADMINISTER |  
+---+---+--+---+--++
I want to be able to dynamically create a URL after clicking on it, which will 
open the VM window in browser (without having 

REST API - Create URL connection (Permission Denied)

2024-02-09 Thread i . noska
Hello,   Ive installed Apache Guacamole v.1.5.4 on Linux CentOS 8.5  - 
Im able to login to GUI, create users, connection, etc.   I installed 
database (MySQL) as well (to manage users, connection) with all needed *.jar 
files according to doc  guacamole.apache.org 
https://guacamole.apache.org/doc/gug/jdbc-auth.html   After that, Im able 
to login as guacadmin user to GUI and manage connections etc.   
Now, I want to create URL to direct connection to my VM, but I found errors 
like below:   --  SCRIPT 
-  #!/bin/bashTOKEN=$(curl -s -X POST 
-H Content-Type: application/x-www-form-urlencoded -d 
username=guacadminpassword=guacadmin  localhost:8080 
http://localhost:8080/guacamole/api/tokens  | jq -r .authToken)   # 
Endpoint API Guacamole  API_ENDPOINT= localhost:8080 
http://localhost:8080/guacamole/api/session/data/mysql/connections
CONNECTION_DATA={    name: Connection name,    
protocol: rdp,    parameters: {    
hostname: 10.194.53.45,    port: 
3389,    username: user,    
password: password    }  }   RESPONSE=$(curl -s -X 
POST -H Content-Type: application/json -H Authorization: Bearer 
$TOKEN -d $CONNECTION_DATA $API_ENDPOINT)   CONNECTION_ID=$(echo 
$RESPONSE | jq -r .identifier)   if [ $CONNECTION_ID != 
null ]; then    URL= localhost:8080 
http://localhost:8080/guacamole/#/client/$CONNECTION_ID?token=$TOKEN     
echo Connection ID: $CONNECTION_ID    echo URL: $URL  else  
  echo Error creating connection.  fi   
-- OUTPUT   
Response: {message:Permission 
Denied.,translatableMessage:{key:APP.TEXT_UNTRANSLATED,variables:{MESSAGE:Permission
 
Denied.}},statusCode:null,expected:null,type:PERMISSION_DENIED}
   Error creating connection.  -- OUTPUT  END 
---  -- L O G S 
--  Apache Tomcat  system messages:   
0:0:0:0:0:0:0:1 - - [09/Feb/2024:12:32:36 +0100] GET 
/guacamole/api/session/data/mysql/users/self HTTP/1.1 403 192  
0:0:0:0:0:0:0:1 - - [09/Feb/2024:12:32:36 +0100] GET 
/guacamole/api/session/data/mysql/users/self HTTP/1.1 403 192Feb  9 
12:32:36 server[90877]: 12:32:36.207 [http-nio-8080-exec-7] DEBUG 
o.a.i.t.jdbc.JdbcTransaction - Committing JDBC Connection 
[com.mysql.cj.jdbc.ConnectionImpl@7c9de5c2]   Feb  9 12:32:36 server[90877]: 
12:32:36.212 [http-nio-8080-exec-7] DEBUG o.a.i.t.jdbc.JdbcTransaction - 
Resetting autocommit to true on JDBC Connection 
[com.mysql.cj.jdbc.ConnectionImpl@7c9de5c2]  Feb  9 12:32:36 server[90877]: 
12:32:36.213 [http-nio-8080-exec-7] DEBUG o.a.i.t.jdbc.JdbcTransaction - 
Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@7c9de5c2]  Feb  9 
12:32:36 server[90877]: 12:32:36.213 [http-nio-8080-exec-7] DEBUG 
o.a.i.d.pooled.PooledDataSource - Testing connection 2090722754 ...  Feb  9 
12:32:36 server[90877]: 12:32:36.214 [http-nio-8080-exec-7] DEBUG 
o.a.i.d.pooled.PooledDataSource - Connection 2090722754 is GOOD!  Feb  9 
12:32:36 server[90877]: 12:32:36.214 [http-nio-8080-exec-7] DEBUG 
o.a.i.d.pooled.PooledDataSource - Returned connection 2090722754 to pool.  Feb  
9 12:32:36 server[90877]: 12:32:36.214 [http-nio-8080-exec-7] DEBUG 
o.a.g.r.auth.AuthenticationService - Login was successful for user 
guacadmin.  Feb  9 12:32:36 server[90877]: 12:32:36.230 
[http-nio-8080-exec-8] DEBUG o.a.g.rest.RESTExceptionMapper - Client request 
rejected: Permission Denied.  -- L O G S END 
--   MESSAGE:  DEBUG 
o.a.g.rest.RESTExceptionMapper - Client request rejected: Permission Denied.
-- DATABASE INFO (Permission)   
mysql SELECT * FROM guacamole_entity JOIN guacamole_user_permission ON 
guacamole_entity.entity_id = guacamole_user_permission.entity_id WHERE 
guacamole_entity.name = guacadmin;   
+---+---+--+---+--++  | 
entity_id | name  | type | entity_id | affected_user_id | permission |  
+---+---+--+---+--++  | 
    1 | guacadmin | USER | 1 |    1 | READ   |  |   
  1 | guacadmin | USER | 1 |    1 | UPDATE |  | 
    1 | guacadmin | USER | 1 |    1 | ADMINISTER |  |   
  1 | guacadmin | USER | 1 |    2 | READ   |  | 
1 | guacadmin | USER | 1 |    2 | UPDATE |  | 1 
| guacadmin | USER | 1 |    2 | DELETE |  | 1 | 
guacadmin | USER | 1 |    2 | ADMINISTER |  
+---+---+--+---+--++
I want to be able to dynamically create a URL after clicking on it, which will 
open the VM window in browser (without