Mercurial > prosody-modules
annotate mod_rest/example/rest.sh @ 6319:04c3273cb81f
mod_auth_cyrus: Add empty 'profile' table to SASL handler objects
This is for compatibility with Prosody's built-in util.sasl objects.
A SASL profile table usually includes methods supported by the backend, which
can be used by SASL mechanism handlers to perform operations (such as testing
the password). It also optionally contains a 'cb' field with channel binding
method handlers.
The Cyrus backend doesn't support channel binding, and doesn't have the same
concept of auth backend methods (it handles all that internally, and Prosody
has no insight or control over it).
Thus, we create an empty profile which informs Prosody that the SASL handler
does not support any of the auth or channel binding methods. Some features
will not work, but they didn't work anyway. This just makes it explicit.
This fixes a traceback in mod_sasl2_fast, which expected SASL handlers to
always contain a 'profile' field.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 04 Sep 2025 10:14:46 +0100 |
| parents | c95dffd984a4 |
| children |
| rev | line source |
|---|---|
|
5281
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 #!/bin/bash -eu |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 # Copyright (c) Kim Alvefur |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 # This file is MIT/X11 licensed. |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
|
5329
107d60c70c1a
mod_rest/rest.sh: List dependencies in comment
Kim Alvefur <zash@zash.se>
parents:
5281
diff
changeset
|
6 # Dependencies: |
|
107d60c70c1a
mod_rest/rest.sh: List dependencies in comment
Kim Alvefur <zash@zash.se>
parents:
5281
diff
changeset
|
7 # - https://httpie.io/ |
|
5636
b3484a112300
mod_rest/rest.sh: Update to use httpie-oauth2 plugin
Kim Alvefur <zash@zash.se>
parents:
5432
diff
changeset
|
8 # - https://hg.sr.ht/~zash/httpie-oauth2 |
|
5329
107d60c70c1a
mod_rest/rest.sh: List dependencies in comment
Kim Alvefur <zash@zash.se>
parents:
5281
diff
changeset
|
9 |
|
5637
acd2f397ce6b
mod_rest/rest.sh: Silence shellcheck SC1091
Kim Alvefur <zash@zash.se>
parents:
5636
diff
changeset
|
10 # shellcheck disable=SC1091 |
|
acd2f397ce6b
mod_rest/rest.sh: Silence shellcheck SC1091
Kim Alvefur <zash@zash.se>
parents:
5636
diff
changeset
|
11 |
|
5936
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
12 SELF="${0##*/}" |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
13 function usage() { |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
14 echo "${SELF} [-h HOST] [-rw] [/path] kind=(message|presence|iq) ...." |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
15 # Last arguments are handed to HTTPie, so refer to its docs for further details |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
16 } |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
17 |
|
5281
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 # Settings |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 HOST="" |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 DOMAIN="" |
|
6284
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
21 PRINT="b" |
|
5281
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 |
|
5666
e5ad3f1f48bd
mod_rest/rest.sh: Restore default read-only behavior and the -rw flag
Kim Alvefur <zash@zash.se>
parents:
5637
diff
changeset
|
23 SESSION="session-read-only" |
|
e5ad3f1f48bd
mod_rest/rest.sh: Restore default read-only behavior and the -rw flag
Kim Alvefur <zash@zash.se>
parents:
5637
diff
changeset
|
24 |
|
5281
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/restrc" ]; then |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 # Config file can contain the above settings |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 source "${XDG_CONFIG_HOME:-$HOME/.config}/restrc" |
|
5636
b3484a112300
mod_rest/rest.sh: Update to use httpie-oauth2 plugin
Kim Alvefur <zash@zash.se>
parents:
5432
diff
changeset
|
28 |
|
b3484a112300
mod_rest/rest.sh: Update to use httpie-oauth2 plugin
Kim Alvefur <zash@zash.se>
parents:
5432
diff
changeset
|
29 if [ -z "${SCOPE:-}" ]; then |
|
6283
887ed0f6e275
mod_rest: Update example script to get refresh tokens from mod_http_oauth2
Kim Alvefur <zash@zash.se>
parents:
5936
diff
changeset
|
30 SCOPE="openid offline_access xmpp" |
|
5636
b3484a112300
mod_rest/rest.sh: Update to use httpie-oauth2 plugin
Kim Alvefur <zash@zash.se>
parents:
5432
diff
changeset
|
31 fi |
|
5281
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 fi |
|
5432
1c52efb6fd42
mod_rest/rest.sh: Trim trailing whitespace
Kim Alvefur <zash@zash.se>
parents:
5431
diff
changeset
|
33 |
|
5281
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 if [[ $# == 0 ]]; then |
|
5936
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
35 usage |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
36 exit 1 |
|
5281
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 fi |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
38 |
|
6284
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
39 while getopts 'vr:h:' flag; do |
|
5936
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
40 case "$flag" in |
|
6284
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
41 v) |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
42 case "$PRINT" in |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
43 b) |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
44 PRINT="Bb" |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
45 ;; |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
46 Bb) |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
47 PRINT="HBhb" |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
48 ;; |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
49 HBhb) |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
50 PRINT="HBhbm" |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
51 ;; |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
52 esac |
|
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
53 ;; |
|
5936
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
54 r) |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
55 case "$OPTARG" in |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
56 o) |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
57 # Default |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
58 SESSION="session-read-only" |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
59 ;; |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
60 w) |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
61 # To e.g. save Accept headers to the session |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
62 SESSION="session" |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
63 ;; |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
64 *) |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
65 echo "E: -ro OR -rw" >&2 |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
66 exit 1 |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
67 ;; |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
68 esac |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
69 ;; |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
70 h) |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
71 HOST="$OPTARG" |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
72 ;; |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
73 *) |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
74 echo "E: Unknown flag '$flag'" >&2 |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
75 usage >&2 |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
76 exit 1 |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
77 esac |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
78 done |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
79 shift $((OPTIND-1)) |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
80 |
|
a9c75430cb26
mod_rest: use bash getopts to handle cli flags in example script
Kim Alvefur <zash@zash.se>
parents:
5666
diff
changeset
|
81 if [ -z "${HOST:-}" ]; then |
|
5281
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
82 HOST="$(hostname)" |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
83 fi |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
84 |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
85 if [[ "$HOST" != *.* ]]; then |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
86 # Assumes subdomain of your DOMAIN |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
87 if [ -z "${DOMAIN:-}" ]; then |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
88 DOMAIN="$(hostname -d)" |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
89 fi |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
90 if [[ "$HOST" == *:* ]]; then |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
91 HOST="${HOST%:*}.$DOMAIN:${HOST#*:}" |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
92 else |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
93 HOST="$HOST.$DOMAIN" |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
94 fi |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
95 fi |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
96 |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
97 |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
98 # For e.g /disco/example.com and such GET queries |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
99 GET_PATH="" |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
100 if [[ "$1" == /* ]]; then |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
101 GET_PATH="$1" |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
102 shift 1 |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
103 fi |
|
4ed65a6c2a6a
mod_rest: Add an example bash script for using mod_rest
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
104 |
|
6284
c95dffd984a4
mod_rest: Add -v flag to example script to allow increasing verbosity
Kim Alvefur <zash@zash.se>
parents:
6283
diff
changeset
|
105 https --check-status -p "$PRINT" --"$SESSION" rest -A oauth2 -a "$HOST" --oauth2-scope "$SCOPE" "$HOST/rest$GET_PATH" "$@" |
