Questão de Programação — Plataforma Java — FUNDATEC 2023
Programação›Plataforma Java
Código
qq896823
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Programação de Sistemas na Tecnologia Java
São anotações de proteção de acesso (Securing Access) ao Enterprise Java Beans (EJB) versão 3.2:
A@DeclareBeans, @PermitFull, @DenyFull, @RolesAll e @Run.
B@SecurityBeans, @PermitFull, @DenyFull, @RolesAll e @Run.
C@DeclareRoles, @PermitAll, @DenyAll, @RolesAll e @RunAs.
D@SecurityRoles, @PermitAll, @DenyAll, @RolesAllowed e @RunAs.
E@DeclareRoles, @PermitAll, @DenyAll, @RolesAllowed e @RunAs.
Revelar gabarito e comentário▾
GabaritoE — @DeclareRoles, @PermitAll, @DenyAll, @RolesAllowed e @RunAs.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Anotações de Segurança no EJB 3.2
Gabarito: letra E. A alternativa E relaciona corretamente as cinco anotações de segurança previstas na especificação EJB 3.2: @DeclareRoles, @PermitAll, @DenyAll, @RolesAllowed e @RunAs. As demais opções contêm nomes incorretos (ex.: @PermitFull, @SecurityRoles, @RolesAll) que não existem na API padrão.
A banca testa o conhecimento literal das anotações do pacote javax.annotation.security e javax.ejb para controle de acesso a métodos EJB. É uma questão de memorização e atenção aos nomes.
Anotações de segurança EJB 3.2: @DeclareRoles (Declara papéis de segurança); @PermitAll (Permite acesso a todos); @DenyAll (Nega acesso a todos); @RolesAllowed (Especifica papéis permitidos); @RunAs (Define papel de execução)
Alternativa A — ❌ Incorreta
Contém @DeclareBeans (não existe, o correto é @DeclareRoles), @PermitFull e @DenyFull (não existem, os corretos são @PermitAll e @DenyAll), @RolesAll (não existe, o correto é @RolesAllowed) e @Run (deveria ser @RunAs).
Alternativa B — ❌ Incorreta
Apresenta @SecurityBeans (inexistente), @PermitFull, @DenyFull, @RolesAll e @Run — todos com os mesmos erros de nomenclatura da alternativa A.
Alternativa C — ❌ Incorreta
Erra apenas em @RolesAll — o nome correto da anotação que declara os papéis permitidos é @RolesAllowed. As demais (@DeclareRoles, @PermitAll, @DenyAll, @RunAs) estão corretas, mas a presença de @RolesAll invalida a opção.
Alternativa D — ❌ Incorreta
Inova com @SecurityRoles, que não é uma anotação padrão do EJB; o correto para declarar papéis é @DeclareRoles. As demais (@PermitAll, @DenyAll, @RolesAllowed, @RunAs) estão corretas, mas @SecurityRoles torna a opção errada.
Alternativa E — ✅ Correta ⟵ GABARITO
Contém exatamente as cinco anotações de segurança definidas na especificação EJB 3.2:
@DeclareRoles: declara os papéis de segurança usados pela aplicação.
@PermitAll: permite acesso a todos os papéis.
@DenyAll: nega acesso a todos os papéis.
@RolesAllowed: especifica quais papéis têm permissão para acessar um método.
@RunAs: define o papel de execução para o método.
PEGA ESSA DICA!
Grave os nomes exatos: todas começam com '@' e seguem o padrão @DeclareRoles, @PermitAll, @DenyAll, @RolesAllowed, @RunAs. Cuidado com trocas comuns: 'RolesAllowed' (plural) e não 'RolesAll'; 'PermitAll' e não 'PermitFull'; 'DeclareRoles' e não 'SecurityRoles'. A banca frequentemente insere anotações inventadas para testar a literalidade.