Security: Use Cases

This page will summarize first thoughts on annotation-based security/authentication support in BaseX.

Annotation specification:

(: Responsible for performing the login of an user, see sec:authenticate and sec:login functions in the security module :)

%sec:authenticate

(: The basic security annotation enforcing a authorization on method invocation.:)

(: The literal defines a principal which must be assigned to the current logged in user :)

(: If the authorization was not successfull the default authorization fallback is called. @see %sec:authorization-fallback :)

%sec:requires-principal(string)

(: The basic security annotation enforcing a authorization on method invocation.:)

(: The first literal defines a principal which must be assigned to the current logged in user :)

(: The second defines the fallback function which should be called if the authorization was not successful @see %sec:authorization-fallback(string) :)

%sec:requires-principal(string,string)

(: Enforces an authentication but no authorization :)

%sec:requires-login

(: The default authorization fallback function. The function must not have any arguments :)

(: relevant information like the current username might be available through additional xquery function in the security module :)

%sec:authorization-fallback

(: An authorization fallback function addressable for %sec:requires-principal(string,string) by given id. The function must not have any arguments :)

(: relevant information like the current username might be available through additional xquery function in the security module :)

%sec:authorization-fallback(string)

(: The default authentication fallback function. The function must not have any arguments :)

%sec:authentication-fallback