Buscar

EX04 - Desenvolvimento Web Full MVC_SN

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando