如果url中包含%20,则Spring Security绕过身份验证

时间:2017-11-29 23:29:27

标签: java spring

不知何故,如果以空格开头,我们有一个可以被绕过的休息api。 战争由tomcat主持。

通过此调用,它无需身份验证即可通过。 http://myserver/api/version/mywarapplication/%20admin/param1/param2/users

有了这个,我确实得到了预期的403 http://myserver/api/version/mywarapplication/admin/param1/param2/users

spring security配置与映射

类似
class Foo
{
    public Foo(int i)
    {
        if (! (i > 3 && i <= 40)) {
            throw ArgumentOutOfRangeException('i')
        }
        val = i;
    }
    public int val;

    public static implicit operator int(Foo i)
    {
        return i.val;
    }

    public static implicit operator Foo(int i)
    {
        return new Foo(i);
    }

    public void print_multiple_times(Foo foo, string bar) {
        // ...
    }
}

请求映射如下所示:

.authorizeRequests()
            .antMatchers("/authenticate/**").authenticated()
            .antMatchers("/checkCredentials/**").authenticated()
            .antMatchers("/Downloads/**").authenticated()
            .antMatchers("/admin/**").hasRole("ADMIN")

任何见解都会受到高度赞赏,因为我看不到我们所缺少的东西。

0 个答案:

没有答案