📜  春季安全 XML

📅  最后修改于: 2022-05-13 01:54:43.065000             🧑  作者: Mango

春季安全 XML

Spring Security是一种为 Spring 应用程序提供身份验证和授权的强大方法。 Spring Security 是一个强大的工具,它为用户提供了自定义安全配置的功能,spring 中的安全配置可以通过以下两种方式进行自定义:

  • 基于 XML 的配置
  • Java配置。

实现:在这里,我们将创建一个 Spring MVC Web 应用程序并添加基于 xml 的配置。

在 Spring MVC 中创建基于 XML 的配置的步骤

第 1 步:创建一个maven webapp 项目,我们使用 Eclipse IDE来创建这个项目。在创建 maven 项目时,选择该项目的原型为maven-archetype-webapp。输入项目的组 ID 和工件 ID,然后单击“完成”。

第 2 步:创建项目后,您的项目结构将如下所示:

pom.xml文件定义了项目所需的所有依赖项。确保添加此文件中提到的所有依赖项,以使您的项目正常工作。

文件:pom.xml

XML

  

  4.0.0
  
  com.gfg
  SpringSecurityXmlConfig
  0.0.1-SNAPSHOT
  war
  
  SpringSecurityXmlConfig Maven Webapp
  
  http://www.example.com
  
  
    UTF-8
    1.7
    1.7
  
  
  
    
      junit
      junit
      4.11
      test
    


    org.springframework
    spring-webmvc
    5.3.16

  


    org.springframework.security
    spring-security-web
    5.6.2

  


    org.springframework.security
    spring-security-core
    5.6.2

  
  

    org.springframework.security
    spring-security-config
    5.6.2

  
  
            


    javax.servlet
    javax.servlet-api
    4.0.1
    provided

  
  
  
  
    SpringSecurityXmlConfig
    
      
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-war-plugin
          3.2.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
      
    
  


XML
  
  
      
            
          
            gfg  
            org.springframework.web.servlet.DispatcherServlet  
            1  
          
          
            gfg  
            /  
          
            
          
        org.springframework.web.context.ContextLoaderListener  
          
        
          
            springSecurityFilterChain  
            org.springframework.web.filter.DelegatingFilterProxy  
          
          
            springSecurityFilterChain  
            /*  
          
            
          
            contextConfigLocation  
              
                /WEB-INF/gfg-servlet.xml  
                /WEB-INF/spring-security.xml  
              
          


XML
  
  
  
     
     
     
     
     
     
     
     
     
        
        
     
     


XML
 
 
  
     
             
     
     
         
            
                    
            
        
    
   
    


Java
// Java Program to Illustrate WelcomeController Class
  
package com.gfg.controller;
  
// Importing required classes
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
  
// Annotation
@Controller
// Class
public class WelcomeController {
  
    // Method 1
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String welcome()
    {
        return "welcome";
    }
  
    // Method 2
    @RequestMapping(value = "/admin",
                    method = RequestMethod.GET)
    public String
    admin()
    {
        return "admin";
    }
}


HTML
  
  
      
    Admin  
      
  
    Welcome Admin
    
                             
    


HTML
  
  
      
    Home Page  
  
  
    

Welcome to Spring Security using XML Configuration!

     


web.xml定义了与不同 URL 和 servlet 的映射,以处理对这些 URL 的请求。 Spring DelegatingFilterProxy 提供 web.xml 和应用程序上下文之间的链接。

文件:web.xml

XML

  
  
      
            
          
            gfg  
            org.springframework.web.servlet.DispatcherServlet  
            1  
          
          
            gfg  
            /  
          
            
          
        org.springframework.web.context.ContextLoaderListener  
          
        
          
            springSecurityFilterChain  
            org.springframework.web.filter.DelegatingFilterProxy  
          
          
            springSecurityFilterChain  
            /*  
          
            
          
            contextConfigLocation  
              
                /WEB-INF/gfg-servlet.xml  
                /WEB-INF/spring-security.xml  
              
          

gfg-servlet.xml文件处理 Web 应用程序的所有 HTTP 请求。注解驱动启用spring注解类。组件扫描根据定义的注解定位和分配bean。 bean 配置有助于识别和定位项目中的JSP文件。

文件:gfg-servlet.xml

XML

  
  
  
     
     
     
     
     
     
     
     
     
        
        
     
     

这是您定义spring安全配置的地方,http bean有助于拦截文件中提到的所有http调用, authentication-manager中的authentication-provider中的用户服务使用用户名为应用程序创建一个用户,密码和该用户的角色。

XML

 
 
  
     
             
     
     
         
            
                    
            
        
    
   
    

com.gfg.controller包中的WelcomeController类定义了 url 的映射,在这个项目中,我们为两个 URL 定义了两个GET方法。 Welcome 方法重定向到主页视图页面,而 admin 方法重定向到管理视图页面。

文件:欢迎控制器。Java

Java

// Java Program to Illustrate WelcomeController Class
  
package com.gfg.controller;
  
// Importing required classes
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
  
// Annotation
@Controller
// Class
public class WelcomeController {
  
    // Method 1
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String welcome()
    {
        return "welcome";
    }
  
    // Method 2
    @RequestMapping(value = "/admin",
                    method = RequestMethod.GET)
    public String
    admin()
    {
        return "admin";
    }
}

HTML

  
  
      
    Admin  
      
  
    Welcome Admin
    
                             
    

这是views 文件夹中的welcome.jsp页面。

HTML

  
  
      
    Home Page  
  
  
    

Welcome to Spring Security using XML Configuration!

     

第 3 步:创建所有配置文件和类后,您的项目将如下所示:

第 4 步:现在我们已经完成了我们的项目,是时候在 tomcat 服务器上运行它了,只需启动 tomcat 服务器并输入http:localhost:8080/SpringSecurityXmlConfig/login 即可