我在Spring应用程序中遇到了一个小问题。我正在使用Spring Security来处理登录和注销。它工作得非常好。然而,我的问题是关于Spring的重定向。我在说什么:默认情况下,Spring Security的配置方式是,在成功注销后,它会将用户重定向到/login?logout
,其工作完全正常,/login?error
也一样。
我正在尝试实施一个简单的"在此输入您的电子邮件以重置密码"。该页面位于/resetPassword
。以下是模板的相关部分:
<form name="f" th:action="@{/resetPassword}" method="post" id="needs-validation" novalidate>
<div class="form-group">
<label for="email">Login email</label>
<input type="email" id="email" name="email" class="form-control" required/>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary btn-block">Reset password</button>
</div>
</form>
我处理的方法看起来像这样:
@PostMapping("/resetPassword")
fun resetPasswordForEmail(@RequestParam("email") email: String): String {
userFacade.resetPassword(email)
return "redirect:/login?reset"
}
一个方法被调用,一切都很好,但:在浏览器中,我没有被重定向到/login?reset
但我被重定向到更远,更具体地说是回到{{1 }}。我可以在Chrome中的开发者工具中看到它。
然而,我不知道为什么会这样。我还尝试使用/login
,返回RedirectAttributes
,但始终保持相同的结果。
任何人都可以给我一些东西吗?
答案 0 :(得分:1)
您没有登录,因此Spring安全会将您重定向到登录名。 您必须使用ROLE_ANONYMOUS对其进行配置,以允许访问resetpassword页面。