您的位置 首页 java

Java中Spring安全性项目以及登录安全详细教程

Java中Spring安全性项目以及登录安全详细教程

Spring 框架在Spring 3.1中添加了 Java 配置支持。 在Spring Security中,Java配置被添加到Spring Security 3.2中,允许我们配置Spring Security而无需编写单行XML。

在这里,我们将创建一个实现Spring Security并在不使用XML的情况下进行配置的示例。 它包括以下步骤。

第1步

第一步是创建一个Spring Security Java配置。 下面给出一个简单的基本Java配置。

WebSecurityConfig.java

Java中Spring安全性项目以及登录安全详细教程

这个配置创建了一个名为 SpringSecurity FilterChain的 Servlet 过滤器。 它负责保护应用程序URL,验证提交用户名和密码,重定向到登录表单等。

上面的Java配置为我们的应用程序执行以下操作。

  • 要求每个URL的认证

  • 创建一个登录表单

  • 允许用户使用基于表单的认证进行认证

  • 允许注销

  • 防止CSRF攻击

  • 安全头集成等

第2步

现在,我们将在war中注册springSecurityFilterChain。 为了注册,Spring Security提供了一个我们需要扩展的基类AbstractSecurityWebApplicationInitializer。

对于Spring MVC应用程序,SecurityWebApplicationInitializer将如下所示。

SecurityWebApplicationInitializer.java

Java中Spring安全性项目以及登录安全详细教程

此代码将为我们的应用程序中的每个URL注册springSecurityFilterChain。

第3步

现在,在我们现有的ApplicationInitializer中加载WebSecurityConfig并添加到getRootConfigClasses()方法中。

MvcWebApplicationInitializer.java

Java中Spring安全性项目以及登录安全详细教程

第4步

WebSecurityConfigurerAdapter类提供了一个包含以下默认配置的配置(HttpSecurity http)方法。 默认定义如下所示。

Java中Spring安全性项目以及登录安全详细教程

它与给定的XML相似。

Java中Spring安全性项目以及登录安全详细教程

此方法执行以下操作。

  • 它确保用户提出的每个请求都要求用户进行身份验证

  • 它允许用户使用基于表单的登录进行身份验证

  • 它允许用户使用HTTP基本认证进行认证

第5步

创建一个控制器来处理用户请求。

HomeController.java

Java中Spring安全性项目以及登录安全详细教程

我们有一个视图(. jsp )页面index.jsp,它包含以下源代码。

Java中Spring安全性项目以及登录安全详细教程

我们的完整项目如下所示。

Java中Spring安全性项目以及登录安全详细教程

Output

我们在控制器中只有一个动作,只能由真实的用户访问。 所以,当我们运行应用程序时,它会提示输入登录凭据。 输出如下。

这是Spring Security提供的默认登录页面,我们没有创建它。 尽管我们可以创建自己的登录页面并使用应用程序进行配置。 我们将在接下来的主题中做到这一点。

那么,现在,提供登录凭证以进入应用程序资源。 Spring Security验证用户凭证并确保用户是真实的。

让我们看看,会发生什么? 如果我们输入错误的凭据。

点击登录按钮后,它会抛出错误的 证书错误

现在,用正确的凭证登录。

这次的凭证是匹配的,并显示我们的主页(index.jsp)。

Spring Security登录注销模块示例

Spring Security提供了我们可以在我们的应用程序中使用的登录和注销功能。 创建安全的Spring应用程序很有帮助。

在这里,我们使用Spring Security创建Spring MVC应用程序并实现登录和注销功能。

首先,我们创建了一个 maven 项目,并在 pom .xml文件中提供了以下项目依赖关系。

项目依赖关系

Spring安全配置

之后,我们创建了配置文件以启用登录功能并仅允许访问授权用户。

该项目包含以下四个Java文件。

AppConfig.java

MvcWebApplicationInitializer.java

SecurityWebApplicationInitializer.java

WebSecurityConfig.java

调节器

HomeController:控制器来处理用户请求。

查看

我们有一个包含以下代码的JSP文件index.jsp。

项目结构

创建上述文件后,我们的项目结构如下所示:

Output

当使用apache tomcat运行时,它会向浏览器生成以下输出。

现在,提供用户凭据来登录。

它在登录成功后显示主页,见下文。

在这里,我们创建了一个可用于注销的注销链接。 让我们看看并从应用程序注销。

然后重定向回登录页面。

那么,我们创建了一个成功的Spring MVC应用程序,它使用Spring Security来实现登录和注销功能。

文章来源:智云一二三科技

文章标题:Java中Spring安全性项目以及登录安全详细教程

文章地址:https://www.zhihuclub.com/184407.shtml

关于作者: 智云科技

热门文章

网站地图