Annotate

mod_auth_external_insecure/examples/python/prosody-auth-example.py @ 6281:9d88c3d9eea5

mod_http_oauth2: Enforce the registered grant types Thus a client can limit itself to certain grant types. Not sure if this prevents any attacks, but what was the point of including this in the registration if it was not going to be enforced? This became easier to do with client_id being available earlier.
author Kim Alvefur <zash@zash.se>
date Mon, 02 Jun 2025 20:55:20 +0200
parent 3884:f84ede3e9e3b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1194
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python2
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 import sys
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 def auth(username, password):
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 if username == "someone":
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 return "1"
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 return "0"
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 def respond(ret):
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 sys.stdout.write(ret+"\n")
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 sys.stdout.flush()
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 methods = {
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 "auth": { "function": auth, "parameters": 2 }
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 }
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 while 1:
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 line = sys.stdin.readline().rstrip("\n")
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 method, sep, data = line.partition(":")
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 if method in methods:
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 method_info = methods[method]
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 split_data = data.split(":", method_info["parameters"])
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 if len(split_data) == method_info["parameters"]:
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 respond(method_info["function"](*split_data))
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 else:
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 respond("error: incorrect number of parameters to method '%s'"%method)
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 else:
f5eadba27120 mod_auth_external: Add example Python script
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 respond("error: method '%s' not implemented"%method)