Spring Web应用程序的登录-错误处理和本地化
最后修改:2020年3月24日
1.概述
在本文中,我们将说明如何实施一个简单的登录页面在后端使用Spring Security处理身份验证的应用程序中使用Spring MVC。
关于如何使用Spring Security处理登录的完整细节,这是文章深入进入配置和实施。
2.登录页面
让我们首先定义一个非常简单的登录页面:
< html > <头> < /头> <身体> < h1 >登录< / h1 > <表单名称= f行动=“登录”方法= '文章' > <表> < tr > < td >用户:< / td > < td > < input type = '文本' name =“用户名”value = " > < / td > < / tr > < tr > < td >密码:< / td > < td > < input type = '密码' name = '密码' / > < / td > < / tr > < tr > < td > <输入名称=“提交”类型=“提交”value = " submit " / > < / td > < / tr > < /表> > < /形式< /身体> < / html >
现在,让我们包含一个客户端检查来确保用户名和密码在我们提交表格之前已进入。对于此示例,我们将使用纯javascript,但jQuery也是一个很好的选项:
4.2。前登录错误
有时,如果前一个操作失败,登录页面将传递一个错误参数。例如,注册表单提交按钮将加载登录页面。如果注册成功,那么最好在登录表单中显示成功消息,如果注册成功则显示错误消息。
在样品中登录在下面的表单中,我们通过拦截和Regsucc.和regError参数,并根据它们的值显示本地化的消息。
< c:如果测试= " ${参数。Regsucc.== true}">
4.3。登录安全错误
如果登录过程因某种原因失败,Spring Security将重定向到登录错误URL,我们已定义/login.html?error=true.。
所以-类似于我们如何在页面中显示注册的状态,我们需要做同样的情况下登录问题:
spring:message> div>
请注意,我们正在使用<春天:消息…>元素。这意味着在Spring MVC处理过程中会生成错误消息。
完整的登录页面——包括js验证和这些附加的状态消息,可以在github项目。
4.4。注销错误
在下面的示例中,jsp代码 在里面logout.html.页面将检查注销过程中是否存在错误。
例如,当自定义注销处理程序在重定向到注销页面之前试图存储用户数据时,如果出现持久性异常。虽然这些错误很少发生,但我们也应该尽可能巧妙地处理它们。
让我们来看看完整的logout.jsp.:
<%@ taglib前缀=“c”uri =“http://java.sun.com/jsp/jstl/core”%> <%@ taglib前缀=“sec”uri =“http://www.springframework。或者g/security/tags"%> <%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> Logged Out
Login
请注意,注销页面还读取查询字符串参数logsucc.,如果它的价值等于真的,将显示本地化的成功消息。
5. Spring安全配置
本文的重点是登录过程的前端,而不是后端 - 所以我们将仅在安全配置的要点上短暂看起来;对于完整配置,您应该阅读前一篇文章。
5.1。重定向到登录错误URL
命令中的以下指令 元素将应用程序的流程指向将处理登录错误的URL:
authentication-failure-url = " / login.html吗?错误= true”
5.2。注销成功重定向
这logout-success-url属性只需将注销页面重定向到注销页面,该参数确认注销成功。
6.结论
在本文中,我们演示了如何为支持Spring Security的应用程序实现登录页面——处理登录验证、显示身份验证错误和消息本地化。
我们将在下一篇文章中查看完整的注册实现 - 目的是完全实施登录和注册过程准备生产。
本文评论关闭!