-
Notifications
You must be signed in to change notification settings - Fork 7
PT BR 04.02.01. Anotações
A anotação @Secured
é a anotação primária e tem a função de "marcar" o elemento para ser observado pelo plugin.
Ela pode ser usada tanto a nível de classe:
@Secured
public class SecuredClass {
@RequiresUser public void requiresUserLoggedIn() {}
@RequiresAuthentication public void requiresAuthentication() {}
}
Quanto de método:
public class SecuredClass {
public void publicMethod() {}
@Secured @RequiresAuthentication public void requiresAuthentication() {}
}
Para tornar um elemento seguro, em conjunto com a anotação @Secured
, deve ser usado uma das seguintes anotações:
-
Para autenticação:
@RequiresUser
Essa anotação define que parar executar o elemento é necessário que o usuário corrente (Subject) teve suas credenciais autenticadas ou lembradas na sessão atual ou anterior.@RequiresAuthentication
Essa anotação define que parar executar o elemento é necessário que o usuário corrente (Subject) possua suas credenciais autenticadas na sessão atual.@RequiresGuest
Essa anotação define que parar executar o elemento é necessário que o usuário corrente (Subject) não possua suas credenciais autenticadas em nenhum momento (usuário anônimo). -
Para autorização:
@RequiresRoles
Define que apenas o usuário autenticado e pertencente a determinado perfil (role) possa executar o elemento@RequiresPermissions
Define que apenas o usuário autenticado e com determinada permissão possa executar o elemento. As permissões são definidas por uma string multinível (separado por :) e pode ser usada em conjunto com o coringa * para designar acesso universal.Exemplos de Strings de Permissões:
printer:hp1100:view printer:hp1100:manage printer:hp1100:print printer:lp7200:view printer:lp7200:manage printer:lp7200:print
E um determinado papel(role) pode possuir permissões de:
printer:* printer:*:view printer:hp1100:* printer:hp1100:manage
As anotações de autenticação ou de autorização podem ser usadas a nível de método ou de classe. Exemplos:
@Secured
public class SecuredClass {
@RequiresUser public void requiresUser() {}
@RequiresAuthentication public void requiresAuthentication() {}
@RequiresGuest public void requiresGuest() {}
@RequiresRoles("User") public void requiresRoleUser() {}
@RequiresRoles("Admin") public void requiresRoleAdmin() {}
@RequiresRoles({"User","Admin"}) public void requiresRoleUserAndAdmin() {}
@RequiresPermissions("doc:read") public void requiresPermissionReadDoc() {}
@RequiresPermissions("doc:write") public void requiresPermissionWriteDoc() {}
@RequiresPermissions({"doc:read","doc:write"}) public void requiresPermissionReadWriteDoc() {}
}
Próximo Passo: Programaticamente