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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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" "$@"