JBoss.orgCommunity Documentation

Chapter 4. Managing security

4.1. Workspace permissions
4.2. Section permissions
4.3. Panel permissions
4.4. Role home page

When we talk about security we refer to the ability to define authorization policies in order to grant or deny users access to a given resource. Therefore, we first have to define who are the target users and what are the resources we want to protect. As resources we have the following:

As of users, the application doesn't own a user repository. Users are managed outside the application. This means the login itself is delegated to the application server. After login, the application server pass to the application both the id of the user and the roles he/she has. The full list of available roles are defined into the application's WEB-INF/web.xml file.

Let's see next how to define custom authorization policies to grant/deny access to a workspaces, pages or panels instances per role.

Below is a screenshot of the permission management screen for a given workspace:

The list of allowed actions are:

To assign a permission you must select the target role and the list of actions allowed over the selected resource.

The above description is the common way to specify a permission regardless of its type. It applies to the definition of permissions for workspaces, pages and panels.

As you can see in the previous figure, the system grants by default the full set of permissions to the role 'admin'. That way it becomes very easy to create a user that can do everything as long as the role admin is assigned.

Below is a screenshot of the permission management screen for a given page:

The list of allowed actions are:

Below is a screenshot of the permission management screen for a given panel:

The list of allowed actions are:

The home page is the page the user will be redirected after initializing its session. In order to get the appropriate home page for the user the security subsystem carries out the following tasks:

To wrap up, it's worth to mention that thanks to the permission system we can build a workspace structure with several pages, menus and panels and start defining what pages and panels within a page will be visible for each role. We can also define special kind of users and give them restricted access to certain tooling features or even restricted access to a page subset. The chances here are infinite.