请求绕过弹簧安全过滤器

时间:2011-11-24 20:42:58

标签: spring-security

请求:/ myProjectName / person / myProfile /

被忽略(即我可以在不应该的时候访问它):

 <security:intercept-url pattern="/person/myProfile" access="isAuthenticated()"/>

但是,如果我写:

 <security:intercept-url pattern="/person/**" access="isAuthenticated()"/>

它有效。

我有带处理程序映射的控制器:

@RequestMapping("/person")

并且在这个控制器里面我有一个带有处理程序映射的方法:

@RequestMapping(value= "/myProfile")

我根本不明白。我不想放“/ person / **”,因为我将限制匿名应该可用的其他处理程序方法。 : - (

1 个答案:

答案 0 :(得分:0)

问题在于理解请求。

首先:大小写并不重要,因为它是自动小写的,除非明确说明不这样做。

第二:如果你是像我一样的控制狂,并希望手动保护每个可能的请求,请确保区分/ request和/ request / 作为Spring安全处理他们分开(允许第二) - 如果我们写...

 <security:intercept-url pattern="/request" access="isAuthenticated()"/>

但是,如果我们写:

 <security:intercept-url pattern="/request/**" access="isAuthenticated()"/>

我们保护这两种类型,所以在我的情况下我应该放

<security:intercept-url pattern="/person/myProfile/**" access="isAuthenticated()"/>

美好的一天,小心;-)我特别难看,因为它开始访问如果访问未经授权就会抛出异常的字段。