我有下一个春季安全配置:
<http auto-config="true" use-expressions="true">
<access-denied-handler ref="myAccessDeniedHandler" />
<intercept-url pattern="/categories**" access="hasAnyRole('ROLE_USER', 'ROLE_ADMIN')" />
<intercept-url pattern="/" access="hasRole('ROLE_USER') and hasIpAddress('1.1.1.1')" />
<intercept-url pattern="/donateproject" access="hasRole('ROLE_USER')" />
<form-login login-page="/logining" default-target-url="/categories" authentication-failure-url="/fail2login"
authentication-failure-handler-ref="myAuthErrorHandler" />
<logout logout-success-url="/logining" />
<csrf disabled="true"/>
</http>
现在我正在尝试访问“/”页面并获得预期的登录页面。当我使用错误的IP时 - 它会将我转发给 ErrorHandler 。即使我有正确的用户名/密码,访问也被拒绝。但。如果我通过按回按钮到登录页面并返回正确的用户名/密码返回浏览器内部,则授予访问权限(((并且不检查IP地址。我想我需要保护登录页面,但不应保护此页面(((我如何克服此类行为。
答案 0 :(得分:0)
我找到了一些合理的答案:
永远不应保护登录页面。为此,请使用:
因此,为了通过IP检查保护资源,应将此检查添加到请求的页面,在我的情况下,它是默认页面(当我回到浏览器时) - / categories ,不是“/”。所以它很简单:
我希望它会对某人有所帮助。花了一整天的时间。