Spring安全问题:控制器,匿名请求

时间:2010-04-12 06:28:30

标签: java flex spring spring-security

我有一个使用Spring安全性和BlazeDS的应用程序。 Flex 3.2用于客户端应用程序。通常,客户端应用程序使用RemoteObjects进行服务调用。

但是,对于某些情况,客户端应用程序正在向URL发送请求。我们使用带注释的控制器进行URL映射。这是“访问被拒绝”例外的地方:

  

2010-04-12 11:43:23,486 [qtp5138683-16]错误fr.plasticomnium.gpoc.utils.ServiceExceptionInterceptor - 意外的RuntimeException:访问被拒绝   org.springframework.security.access.AccessDeniedException:访问被拒绝           在org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:71)           在org.springframework.security.access.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:203)           在org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64)           在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)           at fr.plasticomnium.gpoc.utils.ServiceExceptionInterceptor.invoke(ServiceExceptionInterceptor.java:15)           在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)           在org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)           在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)           在org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)           在org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)           在org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)   ...   ...

1 个答案:

答案 0 :(得分:1)

了解正在发生的事情的最佳方法是开始记录DEBUG,然后在发生违规请求时查看日志。

我的猜测是你的SpringSecurity配置正在对请求应用错误的访问规则。如果您发布请求URL和访问控制配置,我们可能能够确定究竟发生了什么。但我最初的怀疑是:

  • 您的<intercept-url>元素的顺序错误,或者
  • 您在某些method元素中使用<intercept-url>属性,并且没有理解(IMO反直觉)后果。