Baixe o app para aproveitar ainda mais
Prévia do material em texto
Exercício por Temas avalie sua aprendizagem Um dos elementos essenciais da estrutura de segurança do Spring é uma sequência de �ltros, criados no padrão Intercept Filter, denominado SecurityFilterChain, que permite avaliar o direito de acesso ao recurso, segundo diferentes combinações de componentes para autenticação e autorização, e próximo ao �nal da cadeia temos o ExceptionTranslationFilter, muito importante para a conclusão dos processos relacionados ao controle de acesso. Assinale a opção correta acerca do ExceptionTranslationFilter: DESENVOLVIMENTO WEB FULL MVC Lupa Aluno: AL FERREIRA Matr.: Disc.: DESENVOLVIMENTO WEB EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu EXERCÍCIO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 03592 - CAMADA DE CONTROLE - SERVIÇOS 1. Independente da ocorrência de exceções, ele invoca doFilter, com passagem da requisição e resposta, para dar continuidade ao �uxo de execução normal. Caso seja veri�cada uma exceção do tipo AccessDeniedException, teremos um erro 403 sendo devolvido para o navegador. Caso seja veri�cada uma exceção do tipo AuthenticationException, isso signi�ca que o usuário está logado, mas não tem direito ao recurso. Não permite detectar exceções do tipo AuthenticationException quando é utilizado o modelo de autenticação via OAuth 2.0. Sempre que temos uma exceção do tipo AccessDeniedException, ocorre o redirecionamento para AuthenticationEntryPoint, para que as credenciais sejam fornecidas adequadamente. Explicação: Quando o ExceptionTranslationFilter é executado, teremos a continuidade normal do �uxo de execução apenas quando não ocorrem exceções. Quando o usuário não está logado, pode ocorrer uma exceção do tipo AuthenticationException, onde ocorre o redirecionamento do �uxo para AuthenticationEntryPoint, independente do modelo adotado, como formulário de login, credenciais via HTTP, ou adoção de OAuth 2.0, entre outros. Caso o usuário esteja logado, mas não tenha direito ao recurso, será veri�cada uma exceção do tipo AccessDeniedException, e um erro 403 será devolvido para o navegador. javascript:voltar(); javascript:voltar(); javascript:voltar(); javascript:voltar(); javascript:diminui(); javascript:diminui(); javascript:aumenta(); javascript:aumenta(); Temos diversos algoritmos criptográ�cos, com diferentes �nalidades. Entre os referidos algoritmos, tem destaque um algoritmo matemático que transforma qualquer bloco de dados em uma série de caracteres de comprimento �xo que impede a decriptogra�a, como aquele que é citado na alternativa: Com o objetivo de aproveitar todas as características apresentadas pelo protocolo HTTP, foi criado o padrão REST (Representational State Transfer), onde os recursos, ou entidades, podem ser representados a partir de endereços na Web. As ações associadas à consulta ou manipulação dos dados dessas entidades estarão diretamente relacionadas aos métodos do protocolo HTTP, sendo correto a�rmar que: Para acessar um servidor REST, a partir de um aplicativo Java, podemos efetuar uma conexão HTTP padrão e tratar os dados recebidos em formato JSON, programando o mapeamento para instâncias de classes Java. Embora seja viável, é um processo trabalhoso, sendo possível obter maior produtividade com uma biblioteca especí�ca, criada para facilitar o controle de chamadas HTTP, não importando o método de acesso utilizado. O texto se refere a qual biblioteca? 2. RC4 AES 3DES RSA MD5 Explicação: Na criptogra�a destrutiva, também conhecida como hash, ocorre a perda de fragmentos dos dados originais, impedindo a decriptogra�a, o que a torna útil para guarda de senhas, tendo como exemplos comuns os algoritmos MD5 e SHA1. 3. Um acesso do tipo POST, sem a inclusão da chave no endereço, de�ne uma consulta para o conjunto completo de entidades de um determinado tipo. Um acesso do tipo DELETE estará associado a uma ação de remoção da entidade, sendo passado no endereço a chave para identi�cação da entidade que será removida. Um acesso do tipo GET estará associado à inclusão de uma entidade na base de dados, sendo passados os atributos no corpo da chamada, em um objeto no formato JSON. Um acesso do tipo POST de�ne uma consulta para uma entidade especí�ca, sendo passada a chave de consulta no corpo da chamada, em um objeto no formato JSON. Um acesso do tipo PUT estará associado à remoção de uma entidade, sendo passados todos os atributos no próprio endereço utilizado. Explicação: Na forma padrão de utilização do REST, as consultas são efetuadas com o método GET, onde a chamada do endereço de base retorna todas as entidades do banco, e o acréscimo da chave de identi�cação causa o retorno de uma entidade especí�ca. Já para os métodos POST e PUT, temos o envio dos atributos da entidade no corpo da chamada, com adoção do formato JSON, sendo utilizados, respectivamente, para inclusão e alteração da entidade na base de dados. Finalmente, o acesso do tipo DELETE estará associado a uma ação de remoção da entidade, sendo passado no endereço a chave para identi�cação da entidade que será removida. 4. Spring Boot Spring Data Retro�t Axios Express Explicação: Através da biblioteca Retro�t conseguimos criar clientes para servidores REST de forma simples, com base em interfaces anotadas Java. As rotas e métodos HTTP utilizados são de�nidos através de anotações como GET e PUT, O processo de autenticação oferecido pelo Spring Security pode utilizar diferentes modelos, sendo possível con�gurá-lo a partir dos métodos da classe HttpSecurity, em uma classe anotada como Con�guration. Considerando um Web Service do tipo RESTful, com autenticação efetuada ao nível do protocolo HTTP, utilizando os usuários do próprio sistema, qual método da classe HttpSecurity deve ser invocado para que seja con�gurado o modelo adequado? No framework Spring temos diversas opções para a autenticação do usuário, onde uma delas seria a utilização de OAuth 2.0. Assinale, dentre as opções abaixo, a alternativa que representa o conjunto de elementos normalmente presentes em requisições realizadas com controle de acesso baseado em OAuth 2.0: O uso da arquitetura MVC permitiu uma boa organização das responsabilidades de cada tipo de componente utilizado na programação do aplicativo. Segundo o padrão arquitetural, no ambiente do framework Spring, em que camadas �cariam, respectivamente, uma classe DAO e uma página JSP? valores passados pelo endereço são capturados com a anotação Path, e o corpo da requisição é obtido com a anotação Body. Após a de�nição da interface, instanciamos um objeto Retro�t, adicionando um JacksonConverterFactory, o qual efetua o mapeamento de JSON para Java, e utilizamos o objeto para gerar o cliente REST a partir da interface anterior. Quanto a Spring Boot e Spring Data, são utilizados no servidor REST Java. Tecnologias similares existem no NodeJS, como Express, no lado servidor, e Axios, no cliente. 5. Oauth2Login PermitAll HttpBasic X509 FormLogin Explicação: Para efetuar a autenticação via protocolo HTTP, com base em usuários do próprio sistema, devemos utilizar httpBasic, padrão para Web Services RESTful. Quando desejamos um formulário de login, para sistemas cadastrais via Web, invocamos formLogin, podendo ainda usar a autenticação por terceiros, através de oauth2Login. Caso seja interessante trabalhar com certi�cados digitais para a autenticação, o método correto seria x509. Finalmente, permitAll é utilizado para de�nir um recurso com acesso livre, sem necessidade de autenticação. 6. Servidor LDAP, Chave Pública, Chave Privada, Cliente Servidor Web ou API, Usuário, Senha, Cookies Chave Privada, Chave Pública, Cliente, Servidor Web ou API Cliente, Servidor Criptográ�co, Servidor de Bancode Dados, Cookies Cliente, Servidor Web ou API, Servidor de Autorização, Tokens Explicação: Alguns papéis são comuns no OAuth 2.0, embora o �uxo de execução possa ser modi�cado de acordo com a plataforma. Temos o Cliente, normalmente um navegador Web ou dispositivo móvel, que solicita ao Servidor de Autorização, como Google ou Facebook, um Token para acesso a determinado Servidor Web ou API. O token é enviado tanto para o Cliente quanto para o Servidor Web ou API, permitindo a comparação e liberação do acesso. 7. View e Controller Model e View Controller e Model View e Model Controller e View Considerando um serviço no estilo REST, implementado com base no framework Spring, e uma entidade Aluno, persistida no sistema através da tecnologia JPA, qual deve ser a assinatura do método que responda a uma consulta no endereço http://localhost:8080/alunos/29891, com o retorno dos dados do aluno de matrícula 29891 no formato JSON? Com a grande diversidade de plataformas que surgiram ao longo do tempo, acabaram sendo de�nidas ''ilhas'' de informação, com grande replicação de dados em diferentes sistemas e alta probabilidade de ocorrência de erros na reinterpretação da informação. Surge, então, o conceito de interoperabilidade, de�nindo meios padronizados para exposição e utilização de serviços em plataformas heterogêneas, o que garante reuso e maior consistência para as informações. Nesse contexto, como serial classi�cado um componente do tipo WSDL? Considere um servidor REST que forneça dados climatológicos para um determinado estado, com base em sua sigla, com autenticação padrão, via protocolo HTTP, tendo usuários de�nidos no próprio sistema. Supondo que você deseja utilizar a consulta disponibilizada pelo servidor a partir de um cliente Java, qual seria a estratégia correta para a implementação? Explicação: Segundo a divisão da arquitetura MVC, componentes associados à persistência �cam na camada Model, objetos de negócio na camada Controller, e interface com o usuário ao nível da View. Como a classe DAO é responsável pela persistência em banco de dados, ela deve �car na camada Model, enquanto as páginas JSP (Java Server Pages), que são utilizados para desenhar as páginas retornadas, devem �car na camada View. 8. @DeleteMapping(''/{matricula}'') public Aluno metodoX(@PathVariable Long matricula) @PostMapping public Aluno metodoX(@RequestBody Aluno aluno) @PutMapping public void metodoX(@RequestBody Aluno aluno) @GetMapping public Aluno metodoX(@RequestBody Long matricula) @GetMapping(''/{matricula}'') public Aluno metodoX(@PathVariable Long matricula) Explicação: De acordo com o padrão adotado no REST, temos as consultas via método GET do HTTP, inclusão de entidades com base no POST, alteração através de PUT e remoção com base no DELETE. Como estamos lidando com uma consulta, a anotação de mapeamento utilizada deve ser GetMapping, contendo uma parte dinâmica, referente à matrícula, a qual é recuperada em um parâmetro de mesmo nome com o uso da anotação PathVariable. Logo, a assinatura será @GetMapping("/{matricula}") public Aluno metodoX(@PathVariable Long matricula). 9. Protocolo de Comunicação Cliente para os Serviços Sistema de Registro e Localização Descritor de Serviços Provedor de Serviços Explicação: Na utilização de serviços interoperáveis, precisamos de um provedor que hospede os serviços, um sistema para registro e descritores para a utilização dos serviços disponíveis. Após localizar o serviço, e compreender sua utilização através do descritor, podemos gerar um cliente, que se comunicará segundo o protocolo estabelecido. Nesse contexto, um componente do tipo WSDL (Web Service Description Language) é um descritor de serviços, onde teremos as assinaturas das chamadas e retornos que devem ocorrer, de acordo com o protocolo SOAP. 10. Utilizar acesso de baixo nível ao servidor REST, via Socket, pois, infelizmente, o Retro�t não oferece suporte para autenticação e não há bibliotecas complementares que possam ser usadas. Utilizar uma chamada anotada com PUT, a partir de uma interface de serviços baseada no Retro�t, com a passagem do usuário e senha no corpo da requisição. Será necessário modi�car o mapeamento padrão, com base em JSON, para uso da sintaxe XML, pois o acesso utilizando dados em formato XML não exige autenticação. Não é necessária nenhuma modi�cação na programação do cliente Java. Basta utilizar uma interface de serviços, com base no Retro�t, adicionando apenas usuário e senha ao endereço. Utilizar uma chamada anotada com GET, a partir de uma interface de serviços baseada no Retro�t, com a interceptação da chamada HTTP e inclusão das credenciais para autenticação. Explicação: Por se tratar de uma consulta, sabemos que o método HTTP é GET, e por se tratar de um serviço autenticado, com base no protocolo HTTP, precisamos das credenciais no Header da chamada. Logo, a estratégia correta será utilizar uma chamada anotada com GET, a partir de uma interface de serviços baseada no Retro�t, com a interceptação da chamada HTTP e inclusão das credenciais para autenticação, com base na biblioteca OkHttpClient. Os dados de usuário e senha, para autenticação, não podem ser passados no corpo ou no endereço, o formato XML não iria anular a necessidade de autenticação, e o Retro�t oferece suporte muito simples para a autenticação, quando utilizada a biblioteca OkHttpClient. Não Respondida Não Gravada Gravada
Compartilhar