-
Notifications
You must be signed in to change notification settings - Fork 7
PT BR 04.02.02. Programaticamente
Rafael Dipold edited this page Dec 21, 2013
·
1 revision
É possível a configuração/uso do plugin sem anotações, o que permite maior controle/dinamismo em seu projeto. Segue um exemplo simplificado:
public class SecuredClass {
@Inject private Subject currentUser;
public void requerAutenticacao() { if (currentUser.isAuthenticated()) {...} }
public void requerPapelGerente() { if (currentUser.hasRole("Manager")) {...} }
public void requerPapelAdmin() { if (currentUser.hasRole("Admin")) {...} }
public void requerPapelGerenteEAdmin() { if (currentUser.hasRoles(Arrays.AsList("Manager", "Admin"))) {...} }
//Irá gerar uma exceção
public void requerPapelGerente() { currentUser.checkRole("Manager")); }
public void requerPapelAdmin() { currentUser.checkRole("Admin")); }
public void requerPapelGerenteEAdmin() { currentUser.checkRoles(Arrays.AsList("Manager", "Admin"))); }
public void requiresPermissionReadDoc() { if (currentUser.isPermitted("doc:read")) {...} }
public void requiresPermissionWriteDoc() { if (currentUser.isPermitted("doc:write")) {...} }
public void requiresPermissionReadWriteDoc() { if (currentUser.isPermittedAll(Arrays.AsList("doc:read", "doc:write"))) {...} }
//Irá gerar uma exceção
public void requiresPermissionReadDoc() { currentUser.checkPermission("doc:read")); }
public void requiresPermissionWriteDoc() { currentUser.checkPermission("doc:write")); }
public void requiresPermissionReadWriteDoc() { currentUser.checkPermissions(Arrays.AsList("doc:read", "doc:write"))); }
}
Próximo Passo: JSP TagLib