在忘记密码的情况下验证用户请求而无需预先验证过滤器

时间:2018-05-11 14:11:19

标签: rest spring-boot spring-security

我有一个名为'x'的单独的休息模块,其中我在完整模块中使用了Spring安全性和基本的auth过滤器(用户名密码),因此任何请求命中这个休息服务应该登录,但我有一个忘记密码的页面,我在同一个x模块中映射,因为这个auth过滤器我无法继续。如果我已登录并转到此页面并使用x模块的服务,那么它的工作正常,但不会在注销用户的情况下使用。

我尝试了这些不工作的事情

<http pattern="/forgotpass" security="none"/>
<intercept-url pattern="/forgotPassword" access="permitAll"/>
<intercept-url pattern="/forgotPassword" filter="none"/>

- &GT; access =“permitAll”不起作用,因为它确实允许所有网址,但仍会通过过滤器进行身份验证  并且 filter =“none”在我放这个东西时甚至无法启动我的jar。

security =“none”有时会出现403禁止错误或内部服务器错误,因为我更改了模式“rest / forgotPassword”或“forgotPassword”。

1 个答案:

答案 0 :(得分:0)

我自己解决了问题。

是有问题的序列。

我正在使用<intercept-url pattern="/forgotPassword" access="isAnonymous()"/>

<intercept-url pattern="/**" access="hasAuthority('USER')" />

之后

我只是通过将“/ forgotPassword”网址放在“/ **”之上来命令该行

原因:它首先按顺序覆盖请求模式,因此它不允许通过,因为忘记密码中缺少角色