author | Kim Alvefur <zash@zash.se> |
Mon, 18 May 2015 02:33:43 +0200 | |
changeset 1742 | b3f048af2dfe |
parent 1194 | f5eadba27120 |
permissions | -rwxr-xr-x |
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) |