Spring: agregar roles en Spring Security

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:

  1. Soporte completo y extensible para autenticación y autorización
  2. Protección contra ataques como fijación de sesión, clickjacking, falsificación de requests entre sitios, etc.
  3. Integración de API de servlet
  4. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *