No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Configurar Spring Security

3/23
Recursos

驴C贸mo iniciar el proyecto de Spring Security?

Spring Security es una herramienta poderosa para proteger tus aplicaciones basadas en Spring Framework, y antes de integrarla en tu proyecto, es esencial estar bien preparado. Primero, es importante trabajar en una aplicaci贸n existente, idealmente una construida en un curso previo de Spring Data JPA. Si no has tomado ese curso, se recomienda revisarlo o acceder al c贸digo fuente en un repositorio de GitHub vinculado en los recursos del curso.

驴C贸mo configurar el entorno de desarrollo?

  1. Clonar el proyecto existente: Ll谩malo "Platzi Pixeria" y 谩brelo con tu entorno de desarrollo integrado (IDE), como IntelliJ IDEA.
  2. Aseg煤rate de tener Java 17: Verifica que el entorno de ejecuci贸n JDK est茅 configurado a Java 17 desde el men煤 de configuraci贸n de IntelliJ IDEA.
File > Settings > Build, Execution, and Deployment > Build Tools > Gradle

Posteriormente, cambia la versi贸n a 17 y actualiza las configuraciones del m贸dulo si es necesario.

  1. Verificar la arquitectura del proyecto: El proyecto debe tener tres capas principales:
    • Capa de persistencia
    • Capa de servicios
    • Capa web (con controladores como PizzaController y CustomerController)

驴C贸mo configurar Spring Security?

Agregar la dependencia de Spring Security:

  1. Visita start.spring.io y a帽ade la dependencia de Spring Security.
  2. Copiar la implementaci贸n en Gradle: En el archivo build.gradle, inserta la dependencia justo debajo de la del starter web.
implementation 'org.springframework.boot:spring-boot-starter-security'
  1. Refrescar Gradle para instalar la dependencia

驴C贸mo verifica los cambios en la aplicaci贸n con Spring Security?

Una vez que la aplicaci贸n se reinicie, utiliza Postman para enviar peticiones a la API. Al integrar Spring Security, todas las solicitudes ser谩n autom谩ticamente interceptadas por el Spring Security Filter Chain. Este cambio se reflejar谩 en el resultado devuelto, el cual mostrar谩 un error 401 si la petici贸n no est谩 autenticada correctamente.

Consejos y recomendaciones pr谩cticas

  • Revisar las configuraciones de base de datos: Aseg煤rate de que las credenciales y el nombre de la base de datos en el archivo application.properties cumplan con tu configuraci贸n actual de MySQL.

  • Explorar la colecci贸n de Postman: Utiliza la colecci贸n proporcionada en los recursos para hacer pruebas completas de todas las funcionalidades.

  • Entender los valores por defecto de Spring Security: La implementaci贸n por defecto crea un usuario y contrase帽a, lo cual es fundamental considerar al manejar la autenticaci贸n.

Con esta preparaci贸n, est谩s listo para profundizar en la integraci贸n de Spring Security en tu aplicaci贸n. Sigue explorando y nunca dejes de aprender para mejorar tus proyectos.

Aportes 15

Preguntas 9

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Como crear una base de datos MySql con Docker-compose.yml

La base de datos se crea con un volumen que va ha almacenar los datos en forma persistente dentro de nuestro sistema de archivos

Tener instalado el docker-desktop en el caso de windows y Mac. Los usuarios linux ya saben que hacer.

crear el archivo desde la linea de comandos, para el caso linux & mac

touch docker-compose.yml

Pegar el siguiente texto dentro del archivo

################################################
### desde la consola de comandos ejecutar
################################################

################################################
### inicial el contenedor ###
################################################
# docker compose up mysql

################################################
### inicial el contenedor sin los logs de consola ###
################################################
# docker compose up mysql -d

################################################
###detener el contenedor###
################################################
# docker compose down

################################################
################################################
#canbir a gusto las credenciales de los usueario
################################################

version: '3.8'
services:
  mysql:
        image: mysql:latest
        command: --default-authentication-plugin=mysql_native_password
        volumes:
        - "./mysql-data/db:/var/lib/mysql"
        restart: always        
        ports:
            - 3306:3306
        environment:
            MYSQL_ROOT_PASSWORD: rootpw
            MYSQL_DATABASE: pizzeria
            MYSQL_USER: pizza
            MYSQL_PASSWORD: 123456

Un manejador de base de datos interesante para todos los Sistemas operativos y funciona muy bien es el dbeaver, se los recomiendo es excelente y tiene muchos drives de conexi贸n a muchas base de datos.

Saludos

Octubre de 2023, No hay enlaces hacia el repositorio ni las peticiones de POSTMAN

Maven

<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-security</artifactId>
	</dependency>

	<dependency>
		<groupId>org.springframework.security</groupId>
		<artifactId>spring-security-test</artifactId>
		<scope>test</scope>
	</dependency>

Para los que gusten utilizar PostgreSql, esta configuraci贸n de docker-compose.yml, con una configuraci贸n persistente y con el administrador de la bd.

version: '3.8'
services:
 db:
   container_name: postgres_container
   build:
    context: .
    dockerfile: dockerfile
   restart: always
   environment:
     POSTGRES_DB: postgres_db
     POSTGRES_USER: admin
     POSTGRES_PASSWORD: "Jaime2030"
     PGDATA: /var/lib/postgresql/data
   ports:
     - "5432:5432"
   volumes:
     - db-data:/var/lib/postgresql/data
   networks:
      - postgres
   

 pgadmin:
   container_name: pgadmin4_container
   image: dpage/pgadmin4:latest
   restart: always
   environment:
     PGADMIN_DEFAULT_EMAIL: [email protected]
     PGADMIN_DEFAULT_PASSWORD: "admin"
     PGADMIN_LISTEN_PORT: 80
   ports:
     - "8989:80"
   volumes:
     - pgadmin-data:/var/lib/pgadmin
   networks:
    - postgres
networks:
  postgres:
    driver: bridge
volumes:
 db-data:
 pgadmin-data:
PROFESOR: COMPARTA LA COLECCION DE POSTMAN POR FAVOR

La dependencia Spring security desde spring initializr

<code>
	implementation 'org.springframework.boot:spring-boot-starter-security'
	testImplementation 'org.springframework.security:spring-security-test'

para que funcione todo bien cambiar la version a <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.6</version>
<relativePath/> en caso de usar maven

Les dejo por si quiere obviar la parte de usar MySQL `# Configuraci贸n de H2` `spring.datasource.driver-class-name=org.h2.Driver` `spring.datasource.url=jdbc:h2:mem:pizzeria;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE` `spring.datasource.username=root` `spring.datasource.password=admin` `# Configuraci贸n de JPA e Hibernate` `spring.jpa.database-platform=org.hibernate.dialect.H2Dialect` `spring.jpa.hibernate.ddl-auto=update` `spring.jpa.show-sql=false` `logging.level.org.springframework.security.web.*=DEBUG`
hola buenas noches, tengo el siguiente problema, estoy tratando de desplegar mi proyecto y no importa que haga me dice que no se puede conectar a base de datos y me saen los siguientes errores, a alguno mas le sucedio y pudo arreglarlo? 1.Caused by: jakarta.persistence.PersistenceException: \[PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.exception.GenericJDBCException: Unable to open JDBC Connection for DDL execution 2.Caused by: org.hibernate.exception.GenericJDBCException: Unable to open JDBC Connection for DDL execution 3.Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) agradeceria la ayuda.
Septiembre de 2023, No hay enlaces hacia el repositorio ni las peticiones de POSTMAN

Cuando Realizen la peticion de traer todas las pizzas y si siguen teniendo el mismo resultado osea que les traiga todas la pizzas es importantes que le den en el boton de Load Maven Changes si estan usando Maven

No encuentro los recursos, alguien me puede compartir el link al repositorio del proyecto anterior?
Hola, en que enlace encuentro los Request de POSTMAN?
<https://github.com/platzi/curso-java-spring-data-jpa.git>
Noviembre 2024: Muchos de estos m茅todos est谩n deprecados. ![](file:///C:/Users/lucia/OneDrive/Im%C3%A1genes/Capturas%20de%20pantalla/Captura%20de%20pantalla%202024-11-09%20200937.png)```js @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests() .anyRequest() .authenticated() .and() .httpBasic(); return http.build(); } ```As铆 quedar铆a ahora: ```js @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf(csrf -> csrf.disable()); http.authorizeHttpRequests((requests) -> { requests .anyRequest().authenticated(); }).httpBasic(withDefaults()); return http.build(); } ```