我有一个使用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) ... ...
答案 0 :(得分:1)
了解正在发生的事情的最佳方法是开始记录DEBUG,然后在发生违规请求时查看日志。
我的猜测是你的SpringSecurity配置正在对请求应用错误的访问规则。如果您发布请求URL和访问控制配置,我们可能能够确定究竟发生了什么。但我最初的怀疑是:
<intercept-url>
元素的顺序错误,或者method
元素中使用<intercept-url>
属性,并且没有理解(IMO反直觉)后果。