Pour sécuriser les API en suivant les règles applicatives, il existe plusieurs niveaux de filtres permettant de contrôler l'accès aux routes de l'API.
En suivant cette logique, nous disposons de ces annotations :
@SecuredAction(type = ActionType.XXXXXXXX, value = "")
: Cette annotation est la plus important elle doit être ajouter sur toute route qui nécessite un sécurisation sans elle autres annotation de sécurité ne sont pas active.ActionType.RESOURCE
: Il s’agit du type de sécurisation appliqué sur la route.WORKFLOW
: Cet ActionType est activé par défaut, même sans spécifier la valeur ActionType. Il applique la sécurisation définie dans la console d'administration.RESOURCE
: Celui-ci s'applique obligatoirement lorsque l'on utilise @ResourceFilter ou @MfaProtected() afin de permettre le déclenchement des filtres dans le traitement des requêtes.AUTHENTICATED
: Il permet de vérifier la présence des cookies de connexion ainsi que l'état de connexion de l'utilisateur.
@ResourceFilter(XXXXXXXXX.class)
: Cette annotation défini l’accès a des groupes particuliers d’utilisateurs.SuperAdminFilter.class
AdminFilter.class
RoleFilter.class
LinkRoleGroupFilter.class
RoleGroupFilter.class
ApplicationFilter.class
AdmlOfStructure.class
WidgetLinkFilter.class
MessageOwnerFilter.class
VisiblesFilter.class
MessageUserFilter.class
MultipleMessageUserFilter.class
MessageUserFilter.class
FoldersFilter.class
AdmlOfStructureOrClassOrTeachOfUser.class
AdmlOfStructuresByExternalId.class
TeacherOfClass.class
AdminStructureFilter.class
UserInStructure.class
UserAccessOrVisible.class
TeacherOfUser.class
AnyAdminOfUser.class
AddFunctionFilter.class
UserAccessOrVisible.class
RelativeStudentFilter.class
AdmlOfUser.class
AdmlOfTwoUsers.class
AdmlOfStructuresByUAI.class
@MfaProtected()
: Cette annotation permet d'ajouter un filtre supplémentaire qui exige l'authentification à deux facteurs pour les points d'accès (endpoints).