Questão nº 29
Questão de Conhecimentos Específicos · FCC TRF4 2025 (nº 29)
Considere o trecho de código abaixo, parte de um sistema de processo eletrônico desenvolvido com Jakarta EE 10+, que utiliza Jakarta Authorization para controle de acesso baseado em papéis (roles).
```
@Path("/processos")
@RolesAllowed({"juiz", "advogado"})
public class ProcessoResource {
@GET
@Path("/{id}")
public Response consultarProcesso(@PathParam("id") Long id) {
// Consulta de processo
}
@POST
@Path("/julgar")
@RolesAllowed("juiz")
public Response julgarProcesso(Julgamento julgamento) {
// Julgamento de processos
}
}
```
Com base no código e nas anotações utilizadas,
- Ao caminho `/processos` leva à execução dos métodos `consultarProcesso` ou `julgarProcesso`, dependendo do perfil que acessa a classe.
- B`juiz` pode somente julgar processos e `advogado` pode somente consultar processos.
- Capenas usuários autenticados com papel `juiz` podem acessar `/julgar`, enquanto `juiz` e `advogado` podem consultar processos. (alternativa correta)
- Da consulta de processos está liberada somente para usuários com perfil de `advogado`.
- E`/{id}` é um parâmetro abstrato de perfil permitido para acessar o método `consultarProcesso`.
Resposta comentada
Gabarito Alternativa C
O @RolesAllowed é uma anotação que define quais papéis (tipos de usuário, como "administrador" ou "cliente") estão autorizados a acessar um recurso específico, seja uma classe inteira ou um método individual.
- (A) Incorreta: O caminho
/processosé a base. A execução deconsultarProcessooujulgarProcessodepende do caminho completo (ex:/processos/123ou/processos/julgar) e do método HTTP (GET ou POST), não do perfil que acessa a classe. O perfil determina se o acesso é permitido, não qual método é invocado. - (B) Incorreta: Esta é uma armadilha comum. O
juizpode julgar processos (devido ao@RolesAllowed("juiz")no métodojulgarProcesso) E também pode consultar processos (pois a anotação@RolesAllowed({"juiz", "advogado"})na classe se aplica ao métodoconsultarProcesso, que não possui uma anotação@RolesAllowedprópria para sobrescrever). Oadvogadopode somente consultar. A palavra "somente" para ojuiztorna a alternativa incorreta. - (C) Correta: O método
julgarProcessotem@RolesAllowed("juiz"), então apenasjuizpode acessá-lo. O métodoconsultarProcessonão tem@RolesAllowedpróprio, então herda o da classe, que é@RolesAllowed({"juiz", "advogado"}), permitindo que ambos os papéis consultem. - (D) Incorreta: A consulta de processos (
consultarProcesso) está liberada parajuizeadvogado, pois herda o@RolesAllowed({"juiz", "advogado"})da classe. - (E) Incorreta:
/{id}é um parâmetro de caminho (path parameter) que representa um valor dinâmico na URL (neste caso, o ID do processo), e não um perfil ou papel de usuário.
Fonte: FCC TRF4 2025 Analista Judiciário - Área Apoio Especializado - Especialidade Análise de Sistemas de Informação (Caderno Tipo 001). Reproduzida para fins de estudo.