📅  最后修改于: 2020-12-05 03:05:37             🧑  作者: Mango
在本教程中,我们将使用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。
单击文件菜单,找到New→Maven Project ,如下面的屏幕截图所示。
提供项目名称,然后选择包装类型作为war(Web Archive) ,如下所示。
完成项目,它将为项目创建一个空的目录结构,如下所示。
最初,它是空的。因此,让我们创建一个Spring MVC应用程序并与Spring Security集成。
这是我们的项目布局。它包含一个控制器,三个XML文件和两个JSP文件。
我们的项目名称为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-security.xml
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!
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的登录模块,并且其验证方式与所提供的用户名和密码相对应。
在接下来的主题中,我们将实现进一步的逻辑,例如:成功登录后呈现用户。