Antes de empezar

1

Pasos para aprender Java Spring

2

驴Java sigue siendo gratuito?

3

Instalaci贸n de ambiente de desarrollo: Linux Ubuntu

4

Instalaci贸n de ambiente de desarrollo: macOS

5

Instalaci贸n de ambiente de desarrollo: Windows

Introducci贸n a Spring boot

6

驴Qu茅 es y qu茅 usaremos de Spring?

7

Conocer qu茅 es una aplicaci贸n autocontenida

8

Crear nuestra aplicaci贸n con Spring Initializr

9

Hola mundo con Spring Boot

10

Configurar Spring Boot

11

Crear la estructura del proyecto

Spring Data

12

驴Qu茅 es JPA?

13

Conocer qu茅 es Spring Data

14

Conectar la base de datos a nuestra aplicaci贸n

15

Mapear las tablas como clases

16

Crear Entity cuando su clave primaria es compuesta

17

Mapear relaciones entre clases

18

Usar la interface CrudRepository

19

Query Methods

Construyendo nuestra API

20

Implementar la anotaci贸n @Repository

21

驴Qu茅 es el patr贸n Data Mapper y qu茅 resuelve?

22

Orientar nuestra API al dominio con MapStruct

23

Orientar nuestro repositorio a t茅rminos del dominio

24

Inyecci贸n de dependencias

25

Implementar la anotaci贸n @Service

26

Implementar la anotaci贸n @RestController

27

Exponer nuestra API

Mejorando nuestra API

28

Controlar las respuestas HTTP

29

Crear el dominio de compras

30

Mapear el dominio de compras

31

Crear el repositorio de compras

32

Probando nuestros servicios de compras

33

Documentar nuestra API con Swagger

Spring Security

34

Configurar la seguridad de nuestra API con Spring Security

35

Generar un JWT

36

Autenticaci贸n con JWT

37

Autorizaci贸n con JWT

Despliegue de nuestra aplicaci贸n

38

Desplegar nuestra API desde la ventana de comandos

39

Desplegar nuestra base de datos con Heroku

40

Desplegar nuestra API con Heroku

41

Conclusiones y despedida del curso

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de Java Spring

Curso de Java Spring

Alejandro Ram铆rez

Alejandro Ram铆rez

Autenticaci贸n con JWT

36/41
Recursos

Aportes 8

Preguntas 10

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Para permitir la visualizaci贸n de Swagger p煤blicamente sin tener que estar autenticados en la aplicaci贸n pueden agregar el siguiente m茅todo en la clase SecurityConfig:

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/v2/api-docs", "/configuration/ui",
                "/swagger-resources/**", "/configuration/security",
                "/swagger-ui.html", "/webjars/**");
    }

Otra alternativa es agregar estas rutas 馃憜 al antMatchers("/**/authenticate", 鈥) que escribimos en el m茅todo configure(HttpSecurity http) de esta clase que est谩s viendo.

Espero les sea 煤til! 馃殌

si a alguien le aparece este error al hacer la petici贸n en postman :
{
鈥渢imestamp鈥: 鈥2021-03-21T14:36:17.154+00:00鈥,
鈥渟tatus鈥: 415,
鈥渆rror鈥: 鈥淯nsupported Media Type鈥,
鈥渕essage鈥: 鈥溾,
鈥減ath鈥: 鈥/platzi-market/api/auth/authenticate鈥
}

deben agregar en la parte de headers, el header content-type con el valor de application/json

Me sale metodo not allowed

{
鈥渢imestamp鈥: 鈥2021-01-25T23:08:50.366+00:00鈥,
鈥渟tatus鈥: 405,
鈥渆rror鈥: 鈥淢ethod Not Allowed鈥,
鈥渕essage鈥: 鈥溾,
鈥減ath鈥: 鈥/platzi-market/api/auth/authenticate鈥
}

me sale el sigueinte error, alguien podria ayudarme

Field authenticationManager in 鈥渘ombre de mi controlador鈥 required a bean of type 鈥榦rg.springframework.security.authentication.AuthenticationManager鈥 that could not be found.

Action:

Consider defining a bean of type 鈥榦rg.springframework.security.authentication.AuthenticationManager鈥 in your configuration.

Si a alguien le llegase a salir este error 鈥渏ava.lang.IllegalArgumentException: secret key byte array cannot be null or empty.\r\n\tat io.jsonwebtoken.lang.Assert.notEmpty(Assert.java:204)\r\n\tat io.jsonwebtoken.impl鈥︹

La soluci贸n es: En la clase 鈥淛WTUtil鈥, cambiar el valor de la constante 鈥淜EY鈥, por un valor que tengo al menos 8 car谩cteres. El error anterior ocurre por introducrir valores muy peque帽os como clave.

no me quedo muy claro para que sirve esta linea de codigo

http:.csrf().disable()

Quiere decir que va a rechazar peticiones de alg煤n otro dominio?

Me salia el siguiente error:

Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

Lo que hice fue incluir

implementation 'javax.xml.bind:jaxb-api:2.3.1'

en build.gradle

pero y los roles? no esta explicando nada del flujo de autenticacion, ni como manipular el contenido del token鈥 simplemente esta picando codigo sin explicar para qu茅鈥, y esta llendo en cada peticion contra la base de datos (supuestamente, pq tiene las credenciales quemadas en texto plano), cuando en teoria el jwt sirven exactamente para evitar eso鈥 y para mas inri en lugar de hacer la autenticacion basica desde los headers, la hace desde el body鈥 eso es una mala pr谩ctica. He salido mas perdido que cuando empec茅 el curso鈥