File: rabbitmq_auth_backend_cache.schema

package info (click to toggle)
rabbitmq-server 4.0.5-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,972 kB
  • sloc: erlang: 257,835; javascript: 22,466; sh: 3,037; makefile: 2,517; python: 1,966; xml: 646; cs: 335; java: 244; ruby: 212; php: 100; perl: 63; awk: 13
file content (62 lines) | stat: -rw-r--r-- 2,520 bytes parent folder | download | duplicates (5)
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

%% ==========================================================================
%% ----------------------------------------------------------------------------
%% RabbitMQ Authorization cache
%%
%% ----------------------------------------------------------------------------

{mapping, "auth_cache.cached_backend", "rabbitmq_auth_backend_cache.cached_backend",[
    {datatype, atom}
]}.

{mapping, "auth_cache.cached_backend.authn", "rabbitmq_auth_backend_cache.cached_backend",[
    {datatype, atom}
]}.

{mapping, "auth_cache.cached_backend.authz", "rabbitmq_auth_backend_cache.cached_backend",[
    {datatype, atom}
]}.


{translation, "rabbitmq_auth_backend_cache.cached_backend",
fun(Conf) ->
    BackendModule = fun
        (internal)  -> rabbit_auth_backend_internal;
        (ldap)      -> rabbit_auth_backend_ldap;
        (http)      -> rabbit_auth_backend_http;
        (amqp)      -> rabbit_auth_backend_amqp;
        (dummy)     -> rabbit_auth_backend_dummy;
        (undefined) -> undefined;
        (Other) when is_atom(Other) -> Other;
        (_) -> cuttlefish:invalid("Unknown/unsupported auth backend")
    end,
    AuthN = BackendModule(cuttlefish:conf_get("auth_cache.cached_backend.authn", Conf, undefined)),
    AuthZ = BackendModule(cuttlefish:conf_get("auth_cache.cached_backend.authz", Conf, undefined)),
    Common = BackendModule(cuttlefish:conf_get("auth_cache.cached_backend", Conf, undefined)),
    case {Common, AuthN, AuthZ} of
        {undefined, V, undefined} when V =/= undefined ->
            cuttlefish:warn(io_lib:format("Cached authZ backend undefined. Using ~p", [AuthN])),
            {AuthN, AuthN};
        {undefined, undefined, V} when V =/= undefined ->
            cuttlefish:warn(io_lib:format("Cached authN backend undefined. Using ~p", [AuthZ])),
            {AuthZ, AuthZ};
        {V, undefined, undefined} when V =/= undefined ->
            Common;
        {undefined, V, V1} when V =/= undefined, V1 =/= undefined ->
            {AuthN, AuthZ};
        _ ->
            cuttlefish:invalid(iolist_to_binary(io_lib:format("Cached auth backend already defined", [])))
    end
end}.

{mapping, "auth_cache.cache_ttl", "rabbitmq_auth_backend_cache.cache_ttl", [
    {datatype, integer}, {validators, ["non_negative_integer"]}
]}.

{mapping, "auth_cache.cache_module", "rabbitmq_auth_backend_cache.cache_module", [
    {datatype, atom}
]}.

{mapping, "auth_cache.cache_refusals", "rabbitmq_auth_backend_cache.cache_refusals", [
    {datatype, {enum, [true, false]}}
]}.