The Security sectionSecurity
In the Security Section you can manage users, groups and set access permissions of REST endpoints.
Users and Groups
The Users and Groups
tab has two subsections: The left section lists all system users that exist in the database. Users can be created by clicking on the "Add User"
button on top of the list and deleted by clicking on the delete button which appears when you hover over the user element.
A user’s attributes like name
, eMail
or password
can be edited via the Edit Properties
dialog. Here a user can be given admin permissions by activating the isAdmin
flag.
In the section on the right, user groups can be created and managed. Groups can contain users and other groups which can be added and removed via drag-and-drop. This allows the creation of a group hierarchy and thus a very flexible and versatile security system.
Resource Access Grants
This part of Structr’s backend UI is the place where the entry points of Structr’s HTTP REST Service can be configured.
While the security system of Structr is focused on users and their security context (i.e. does the user has access to a given database entity?), the checking of resource access grants is focused on the URL path (the resource) of an HTTP request.
More precisely, if a user requests all entities of a given schema type via Structr’s REST
interface with a call to the URL /structr/rest/SchemaType
, Structr will check if the user is logged into the system and if a GET
request on the resource /SchemaType
is permitted for authenticated users. If the user is not logged into the system the GET permission for non-authenticated users has to be set for that resource.
Only when the permission for the resource is set, Structr will then check if user has grants for the actual database content and the entities of the type SchemaType
.
If the Structr log file contains a message like the following:
INFO org.structr.web.auth.UiAuthenticator - Resource access grant found for signature 'SchemaType', but method 'GET' not allowed for public users.
INFO org.structr.web.auth.UiAuthenticator - No resource access grant found for signature 'SchemaType/_Public' (URI: /structr/rest/SchemaType/public)
in newer versions:
INFO org.structr.web.auth.UiAuthenticator - Found no resource access grant for user 'john' and signature 'SchemaType' (URI: /structr/rest/SchemaType)
INFO org.structr.web.auth.UiAuthenticator - Found 1 resource access grant for anonymous users and signature 'SchemaType' (URI: /structr/rest/SchemaType), but method 'GET' not allowed in any of them.
The first message comes in case that the resource access grant with the signature SchemaType
exists, but the method GET
is not configured to be allowed for public users.
The second message comes in case a resource is requested for which no resource access grant exists at all (in this case a GET
request for the view “public” on the type “SchemaType”).
For the first two lines in the above case (< v.4.0) two separate Resource Access Grants would need to be created. One with the signature SchemaType
and the GET permission for public users. The other one with the signature SchemaType/_Public
.