Spring Security es un marco de autenticación y control de acceso potente y altamente personalizable. Es el estándar de facto para proteger las aplicaciones basadas en Spring. Spring Security es un marco que se enfoca en proporcionar autenticación y autorización a las aplicaciones Java. Como todos los proyectos de Spring, el verdadero poder de Spring Security se encuentra en la facilidad con la que se puede ampliar para cumplir con los requisitos personalizados. Algunas de las características clave de Spring Security son:
- Soporte completo y extensible para autenticación y autorización
- Protección contra ataques como fijación de sesión, clickjacking, falsificación de requests entre sitios, etc.
- Integración de API de servlet
- Integración opcional con Spring Web MVC
En este artículo, discutiremos cómo agregar roles en Spring Security. En casi todas las aplicaciones web, el primer paso que hacemos es la autenticación, que es el primer paso importante para todos los que desean acceder a la aplicación web, pero consideran una aplicación universitaria en la que los estudiantes, así como los profesores, utilizan ese sitio web. Todos los maestros tienen acceso adicional, como que pueden eliminar el registro de los registros de los estudiantes en particular, pero el estudiante no puede hacerlo. Ahora piensa en cómo es esto posible. Esto es posible solo cuando difieren en los roles/la solicitud de eliminación se puede realizar solo para los roles de alta prioridad, no para los roles de menor prioridad. En este caso, los estudiantes están configurados para tener roles de baja prioridad, mientras que los maestros están en los roles de máxima prioridad. Analicemos cómo agregar roles en la aplicación web Spring.
Implementación paso a paso
Paso 1: Ir a Spring Initializr
Complete los detalles según los requisitos. Para esta aplicación:
Project: Maven Language: Java Spring Boot: 2.2.8 Packaging: JAR Java: 8 Dependencies: Spring Web
Paso 2: haga clic en Generar, que descargará el proyecto de inicio.
Paso 3: extraiga el archivo zip. Ahora abra un IDE adecuado y luego vaya a Archivo > Nuevo > Proyecto de fuentes existentes > Spring-boot-app y seleccione pom.xml . Haga clic en importar cambios en el aviso y espere a que el proyecto se sincronice como se muestra a continuación:
Nota : en la ventana Importar proyecto para Maven, asegúrese de elegir la misma versión de JDK que seleccionó al crear el proyecto.
Paso 4: ahora vaya a src> main> java> com.gfg.Spring.boot.app y cree dos archivos java, uno es controller.java y el otro es config.java
controlador.java
Java
@RestController public class controller { @GetMapping("/delete") public String delete() { return "This is the delete request"; } }
El archivo java anterior se usa para configurar el controlador para manejar la solicitud entrante desde el lado del cliente. Ahora tenemos que configurar la solicitud para eso usaremos el archivo config.java.
config.java
Java
@EnableWebSecurity public class config extends WebSecurityConfigurerAdapter { // Adding the roles @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser("Zack") .password("aayush") .roles("admin_role") .and() .withUser("Aayush") .password("Saini") .roles("student_role"); } // Configuring the api // according to the roles. @Override protected void configure(HttpSecurity http) throws Exception { http. httpBasic() .and() .authorizeRequests() .antMatchers("/delete").hasRole("admin_role") .and() .formLogin(); } // Function to encode the password // assign to the particular roles. @Bean public PasswordEncoder getPasswordEncoder(){ return NoOpPasswordEncoder.getInstance(); } }
La clase WebSecurityConfigureAdapter se usa para configurar las requests entrantes, principalmente se usan dos métodos para las configuraciones. El primer método se usa para agregar los roles para un servidor de aplicaciones Spring y el otro método se usa para distinguir la solicitud de acuerdo con los roles. Ahora ejecute la aplicación principal de la aplicación de primavera.
Nota: No se genera una contraseña predeterminada porque ya hemos utilizado una configuración externa para manejar las credenciales de usuario.
Probando la API en Postman
Vaya al cartero y escriba localhost:8080/delete
Uso de los roles de administrador:
Usando el rol de estudiante:
Publicación traducida automáticamente
Artículo escrito por zack_aayush y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA