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
这个配置创建了一个名为springSecurityFilterChain的Servlet过滤器 它负责保护应用程序URL,验证提交用户名和密码,重定向到登录表单等上面的Java配置为我们的应用程序执行以下操作。
要求每个URL的认证创建一个登录表单允许用户使用基于表单的认证进行认证允许注销防止CSRF攻击安全头集成等第2步现在,我们将在war中注册springSecurityFilterChain 为了注册,Spring Security提供了一个我们需要扩展的基类。
AbstractSecurityWebApplicationInitializer对于Spring MVC应用程序,SecurityWebApplicationInitializer将如下所示SecurityWebApplicationInitializer.java。
此代码将为我们的应用程序中的每个URL注册springSecurityFilterChain第3步现在,在我们现有的ApplicationInitializer中加载WebSecurityConfig并添加到getRootConfigClasses()方法中。
MvcWebApplicationInitializer.java
第4步WebSecurityConfigurerAdapter类提供了一个包含以下默认配置的配置(HttpSecurity http)方法。 默认定义如下所示。
它与给定的XML相似。
此方法执行以下操作它确保用户提出的每个请求都要求用户进行身份验证它允许用户使用基于表单的登录进行身份验证它允许用户使用HTTP基本认证进行认证第5步创建一个控制器来处理用户请求HomeController.java。
我们有一个视图(.jsp)页面index.jsp,它包含以下源代码。
我们的完整项目如下所示。
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来实现登录和注销功能。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。