SpringSecurity-day01-Initial SpringSecurity

1. Conociendo Spring Security

1.1 Concepto de Spring Security

Spring Security es un marco de seguridad implementado por Spring usando ideas de AOP y basado en filtros de servlets . Proporciona un mecanismo de autenticación completo y funciones de autorización a nivel de método. Es un marco de gestión de autoridad muy bueno.

1.2 Introducción simple a Spring Security

Spring Security es amplio y profundo, ingenioso en diseño, complicado en funciones y difícil de describir en una palabra. ¡Carguemos el código directamente!

1.2.1 Crear un proyecto web e importar el paquete jar

  1. El paquete principal spring-security-core.jar   , que es necesario para cualquier función de Spring Security

  2. spring-security-web.jar es necesario para  proyectos web , incluidos los filtros y el código de infraestructura de seguridad web relacionado .

  3. spring-security-config.jar se  usa para analizar el archivo de configuración xml , y este paquete es necesario para el archivo de configuración xml de Spring Security .

  4. spring-security-taglibs.jar  Biblioteca de etiquetas dinámicas proporcionada por Spring Security , se puede usar la página jsp .

<dependency> 
    <groupId> org.springframework.security </groupId> 
    <artifactId> spring-security-config </artifactId> 
    <version> 5.1.5.RELEASE </version> 
</dependency> 
<dependency> 
    <groupId> org .springframework.security </groupId> 
    <artifactId> spring-security-taglibs </artifactId> 
    <version> 5.1.5.RELEASE </version> 
</dependency>

1.2.2 Configurar web.xml

<! - 配置 SpringSecurity -> 
<! - SpringSecurity 核心 过滤 器 链 -> 
<! - springSecurityFilterChain 名词 不能 修改 -> 
<filter> 
    <filter-name> springSecurityFilterChain </filter-name> 
    <filter- class> org.springframework.web.filter.DelegatingFilterProxy </filter-class> 
</filter> 
<filter-mapping> 
    <filter-name> springSecurityFilterChain </filter-name> 
    <url-pattern> / * </ url-pattern > 
</mapeo-filtro>

1.2.3 Configurar spring-security.xml

<? xml version = "1.0" encoding = "UTF-8"?> 
<beans xmlns = "http://www.springframework.org/schema/beans" 
        xmlns: xsi = "http://www.w3.org / 2001 / XMLSchema-instance " 
        xmlns: context =" http://www.springframework.org/schema/context " 
        xmlns: aop =" http://www.springframework.org/schema/aop " 
        xmlns: tx =" http://www.springframework.org/schema/tx " 
        xmlns: mvc =" http://www.springframework.org/schema/mvc " 
        xmlns: security =" http://www.springframework.org/schema/ seguridad " 
        xsi: schemaLocation =" http://www.springframework.org/schema/beans 
             http://www.springframework.org/schema/beans/spring-beans.xsd xsd 
             http://www.springframework.org/schema/context
             http://www.springframework.org/schema/context/spring-context.xsd 
             http://www.springframework.org/schema/aop 
             http://www.springframework.org/schema/aop/spring-aop. xsd 
             http://www.springframework.org/schema/tx 
             http://www.springframework.org/schema/tx/spring-tx.xsd 
             http://www.springframework.org/schema/mvc 
             http: // www.springframework.org/schema/mvc/spring-mvc.xsd 
                http://www.springframework.org/schema/security 
             http://www.springframework.org/schema/security/spring-security.xsd "> 

    < ! - Liberar recursos estáticos -> 
    <security: http pattern = "/ css / **" security = "none" />
    <seguridad: http pattern = "/ img / **" security = "none" /> 
    <seguridad: http pattern = "/ plugins / **" security = "none" /> 
        ->
    <security: http pattern = "/ failer.jsp" security = "none" /> 
    <! - Configure springSecurity -> 
    <! - 
    auto-config = "true" significa que el archivo de configuración de springsecurity se carga automáticamente 
    use- expression = "true" significa usar expresiones el de spring para configurar springsecurity 
    -> 
    <seguridad: http auto-config = "true" use-expression = "true"> 
        <! - Hacer que la página de autenticación sea accesible de forma anónima -> 
        <seguridad : intercept-url pattern = "/ login.jsp" access = "permitAll ()" /> 
        <! - Interceptar recursos -> 
        <! - 
        pattern = "/ **" significa interceptar todos los recursos 
        access = "hasAnyRole ('ROLE_USER') "significa que solo el rol de ROLE_USER puede acceder a los recursos 
        <seguridad:intercept-url pattern = "/ **" access = "hasAnyRole ('ROLE_USER')" /> 
        <! - Configurar la información de autenticación -> 
        <security: form-login login-page = "/ login.jsp" 
                             login-processing-url = "/ login " 
                             default-target-url =" / index.jsp " 
                             authentication-failure-url =" / failer.jsp "/> 
        <! - Configurar la información de cierre de sesión -> 
        <seguridad: logout logout-url =" / logout " 
                         logout -success-url = "/ login.jsp" /> 
        <! - Elimina el filtro interceptado por csrf -> 
        <! - <security: csrf disabled = "true" /> -> 
    </ security: http> 

    <! - Coloque el objeto encriptado en el contenedor IOC ->
    <bean id = "passwordEncoder" class = "org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />
    <! - Establecer la fuente de información de usuario de autenticación de Spring Security -> 
    <! - La 
    autenticación predeterminada de SpringSecurity debe estar encriptada, más {noop} significa autenticación no encriptada.  
<! - <seguridad: servicio-usuario> <
    -> 
    <seguridad: administrador-autenticación>
        <seguridad: proveedor-autenticación usuario-servicio-ref = "userServiceImpl"> 
            <seguridad: codificador-contraseña ref = "codificador-contraseña" /> 
        </ seguridad: proveedor-autenticación> 
    </ seguridad: administrador-autenticación> 



<! - & lt ;! & ndash; Establecer el origen de la información de usuario de autenticación de Spring Security & ndash; & gt; -> 
<! - & lt;! & ndash; La autenticación predeterminada de Spring Security debe estar encriptada, además {noop} significa que no hay autenticación de encriptación & ndash; & gt; -> 
<! - <seguridad: administrador-autenticación> -> 
<! - <seguridad: proveedor-autenticación> ->
<! - <seguridad: nombre de usuario = "admin" contraseña = "{noop} admin" autoridades = "ROLE_ADMIN" /> -> 
<! - </ seguridad: servicio-usuario> </ seguridad: proveedor-autenticación > -> 
<! - </ security: authentication-manager> -> 

</beans>

1.2.4 El spring-security.xml introducido en el perfil applicationContext.xml en

<! - Introducción del archivo de configuración de springsecurity -> 
<import resource = "classpath: spring-security.xml" />

1.2.5 Ejecución de resultados

 

Supongo que te gusta

Origin blog.csdn.net/SSbandianH/article/details/112463952
Recomendado
Clasificación