通过IP地址

时间:2015-11-19 11:07:07

标签: spring-mvc spring-security

我有下一个春季安全配置:

 <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地址。我想我需要保护登录页面,但不应保护此页面(((我如何克服此类行为。

1 个答案:

答案 0 :(得分:0)

我找到了一些合理的答案:

  1. 永远不应保护登录页面。为此,请使用:

  2. 因此,为了通过IP检查保护资源,应将此检查添加到请求的页面,在我的情况下,它是默认页面(当我回到浏览器时) - / categories ,不是“/”。所以它很简单:

  3. 我希望它会对某人有所帮助。花了一整天的时间。