📜  Spring Security XML示例

📅  最后修改于: 2020-12-05 03:05:37             🧑  作者: Mango

Spring安全项目

在本教程中,我们将使用Spring MVC框架实现Spring Security。所有示例都是Spring MVC,并使用Maven项目创建

我们使用的是Spring Security 5.0.0.RELEASE版本,下面是所有示例中使用的maven依赖项。


        org.springframework.security
        spring-security-web
        5.0.0.RELEASE


        org.springframework.security
        spring-security-core
        5.0.0.RELEASE


        org.springframework.security
        spring-security-config
        5.0.0.RELEASE

为了在Spring应用程序中实现Spring Security,我们可以使用XML或基于Java的配置对其进行配置。

让我们看一个示例,其中我们将使用XML来配置Spring Security。

创建一个Maven项目

单击文件菜单,找到New→Maven Project ,如下面的屏幕截图所示。

选择项目名称和位置

提供项目名称

提供项目名称,然后选择包装类型作为war(Web Archive) ,如下所示。

完成项目,它将为项目创建一个空的目录结构,如下所示。

最初,它是空的。因此,让我们创建一个Spring MVC应用程序并与Spring Security集成。

这是我们的项目布局。它包含一个控制器,三个XML文件和两个JSP文件。

Spring安全项目源代码

我们的项目名称为springsecurity ,包含以下源文件。

控制者

HomeController.java

package com.javatpoint.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class HomeController {
    
    @RequestMapping(value="/", method=RequestMethod.GET)
    public String home() {
        return "home";
    }
    
    @RequestMapping(value="/admin", method=RequestMethod.GET)
    public String privateHome() {
        return "privatePage";
    }
}

Spring安全配置

spring-security.xml


    
        
    
    
      
        
        
        
      
    

Servlet调度程序

spring-servlet.xml




   
   
   
   
      
      
   

网络描述符

web.xml



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

项目依赖

pom.xml


  4.0.0
  com.javatpoint
  springsecurity
  0.0.1-SNAPSHOT
  war   

    1.8
    1.8


  
            org.springframework
            spring-webmvc
            5.0.2.RELEASE
        
        
        org.springframework.security
        spring-security-web
        5.0.0.RELEASE
    
    
        org.springframework.security
        spring-security-core
        5.0.0.RELEASE
    
    
        org.springframework.security
        spring-security-config
        5.0.0.RELEASE
    
        

    javax.servlet
    javax.servlet-api
    3.1.0
    provided



    
        
            org.apache.maven.plugins
            maven-war-plugin
            2.6
            
                false
            
        
    


查看页面

home.jsp




Home


Welcome to javatpoint spring tutorial!

privatePage.jsp

home.jsp




Admin


Hello Admin


输出量

该示例使用Apache Tomcat v9.0执行。运行后,它将向浏览器生成以下输出。

最初,它将呈现显示以下输出的home.jsp页面。

我们在管理页面中添加了spring安全性,如果在浏览器中输入/ admin ,则应用程序将产生以下输出。

要求网址:http:// localhost:8080 / springsecurity / admin

现在,这是弹簧安全性提供的真正魔术,可保护资源免遭未经身份验证的用户的侵害。

这是Spring Security提供的模块,我们没有创建它。它还可以验证用户输入。

提供错误的凭证。

如果我们提供了错误的登录凭据,它将使用我们在spring-security.xml文件中提到的用户名和密码进行验证。

验证后,如果登录凭据不正确,则会引发错误消息。

嗯,在这个示例中,我们已经看到了Spring Security的登录模块,并且其验证方式与所提供的用户名和密码相对应。

在接下来的主题中,我们将实现进一步的逻辑,例如:成功登录后呈现用户。