-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgnap_soa_channels.scm
96 lines (82 loc) · 2.06 KB
/
gnap_soa_channels.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
(herald "GNAP Software-only Authorization using Channels")
(include "gnap_soa_channels_macros.lisp")
(defprotocol gnap_soa_channels basic
; CI
(defrole client_instance
(vars
(ci rs name)
(as_token_rand rand)
(rs_access access)
(rs_data data)
(ci_key pk_as akey)
(ch_ci_as ch_ci_rs ch_as_ci ch_rs_ci chan)
)
(trace
(ROLE_CI
ci ci_key ch_ci_as ch_ci_rs
as_token_rand pk_as ch_as_ci
rs rs_access rs_data ch_rs_ci
)
)
(uniq-orig ci_key)
(auth ch_ci_as ch_ci_rs ch_as_ci ch_rs_ci)
(conf ch_ci_as ch_ci_rs ch_as_ci ch_rs_ci)
)
; AS
(defrole authorization_server
(vars
(ci rs name)
(as_token_rand rand)
(rs_access access)
(ci_key pk_as akey)
(ch_ci_as ch_as_ci chan)
)
(trace
(ROLE_AS
ci ci_key ch_ci_as
as_token_rand pk_as ch_as_ci
rs rs_access
)
)
(uniq-orig as_token_rand)
(non-orig (invk pk_as))
(auth ch_ci_as ch_as_ci)
(conf ch_ci_as ch_as_ci)
)
; RS
(defrole resource_server
(vars
(ci rs name)
(as_token_rand rand)
(ci_key pk_as akey)
(rs_access access)
(rs_data data)
(ch_ci_rs ch_rs_ci chan)
)
(trace
(ROLE_RS
ci ci_key ch_ci_rs
as_token_rand pk_as
rs rs_access rs_data ch_rs_ci
)
)
(uniq-orig rs_data)
(auth ch_ci_rs ch_rs_ci)
(conf ch_ci_rs ch_rs_ci)
)
; Custom Sorts
(lang (access atom))
(lang (rand atom))
)
(defskeleton gnap_soa_channels
(vars)
(defstrandmax client_instance)
)
(defskeleton gnap_soa_channels
(vars)
(defstrandmax authorization_server)
)
(defskeleton gnap_soa_channels
(vars)
(defstrandmax resource_server)
)