Red de conocimiento informático - Material del sitio web - Cómo configurar las dependencias de Spring Security en Maven

Cómo configurar las dependencias de Spring Security en Maven

1.1 spring-security-core

La funcionalidad principal de Spring Security la proporciona el paquete spring-security-core, que incluye funciones de autenticación y control de acceso, soporte para aplicaciones independientes, seguridad a nivel de método y soporte JDBC. . springframework.security

spring-security-core

spring-security-core

${org.springframework.security.version}

Nota: Estamos usando Spring Security versión 3.2.x - - Spring y Spring Security tienen diferentes planes de lanzamiento, por lo que no existe una correspondencia uno a uno entre sus números de versión.

Si el proyecto utiliza una versión antigua de Spring, debe tenerse en cuenta que la versión Spring Security 3.1.x no depende de la versión Spring 3.1.x, porque la versión Spring Security 3.1.x está en Spring 3.1 Publicado anteriormente. El plan de Spring es acercar los números de versión de ambas partes en versiones posteriores. Los números de versión de ambas partes están más cerca; consulte este JIRA para obtener más detalles.

1.2 spring-security-web

Para agregar soporte web a Spring Security, debe introducir la dependencia spring-security-web:

spring-security-web

Este proyecto introduce componentes de seguridad subyacentes relacionados y control de acceso URL al filtro del entorno Servlet.

1.3 Problema de dependencia entre Spring Security y la versión anterior de Spring Core

Como se mencionó anteriormente, esta nueva dependencia crea un problema de dependencia de Maven, en el que los archivos jar de Spring Security no dependen los últimos jars Spring core (pero en versiones anteriores). Esto puede hacer que los paquetes relacionados con Spring Core dependientes se configuren antes que los últimos paquetes relacionados con Spring 4.x en el classpath.

¿Cómo sucede esto? Necesitamos comprender el mecanismo mediante el cual Maven maneja los conflictos de versiones; Maven elegirá la versión más cercana a la raíz del árbol de dependencia. En el caso anterior, spring-orm depende de la versión 4.x de spring-core y spring-security-core depende de la versión 3.2.8 de spring-core.

Por lo tanto, el orden en el que se definen spring-orm y sprint-security-web es un asunto, el que se defina primero tendrá mayor prioridad.

Para evitar este tipo de problemas, debemos especificar explícitamente algunas dependencias de Spring en el archivo pom en lugar de confiar en el mecanismo de dependencia implícito de Maven. Definiremos dependencias específicas en el archivo pom raíz para que estas dependencias tengan mayor prioridad. En el siguiente ejemplo, la misma versión se definirá explícitamente para todos los componentes principales de Spring, mientras que para proyectos de varios módulos deberá definirse en la propiedad dependencyManagement del archivo de configuración principal.

org.springframework

spring-core

${org.springframework.version}

org.springframework

& lt;dependency>

org.springframework

expresión-spring

${org.springframework.version}