2010-04-12 45 views
1

我有一個使用Spring安全性和BlazeDS的應用程序。 Flex 3.2用於客戶端應用程序。通常,客戶端應用程序使用RemoteObjects進行服務調用。Spring Security問題:控制器,匿名請求

但是,在某些情況下,客戶端應用程序正在向URL發送請求。我們使用帶註釋的控制器進行URL映射。這裏就是 「訪問被拒絕」 的例外出現:

2010-04-12 11:43:23486 [qtp5138683-16]錯誤fr.plasticomnium.gpoc.utils.ServiceExceptionInterceptor - 意外的RuntimeException:訪問被拒絕 org.springframework.security.access.AccessDeniedException:訪問被拒絕 位於org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:71) at org.springframework.security.access.intercept.AbstractSecurityInterceptor。 beforeInvocation(AbstractSecurityInterceptor.java:203) at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64) at org.springfr amework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at fr.plasticomnium.gpoc.utils.ServiceExceptionInterceptor.invoke(ServiceExceptionInterceptor.java:15) at 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) 的組織。 springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springfram ework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) ... ...

回答

1

最好的方式來得到一些洞察到正在發生的事情是殺青記錄了DEBUG和然後在發生違規請求時查看日誌。

我的猜測是您的SpringSecurity配置將錯誤的訪問規則應用於請求。如果您發佈請求URL和訪問控制配置,我們可能會弄清楚到底發生了什麼。但我最初的懷疑將是:

  • 你在錯誤的順序<intercept-url>元素,或
  • 您使用method屬性在你的一些<intercept-url>元素,並沒有得到你的頭周圍的( IMO違反直覺)的後果。