2012-05-25 37 views
3

我想有一個類似的行爲堆棧溢出,您可以匿名查看大多數網站,只需要用戶角色/身份驗證的某些行動。基本上匿名讀取限制寫入。 我希望我能做的是指定匿名訪問我的security-config.xml並註釋需要適當用戶角色的各種方法。 配置:春季安全如何允許匿名訪問大多數網站限制某些行動

<global-method-security secured-annotations="enabled" /> 

<http auto-config='true'> 
    <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
    <http-basic /> 
</http> 

方法聲明

@Secured("ROLE_USER") 
    @RequestMapping(value = "/{estabID}", method = RequestMethod.GET) 
    public ModelAndView getEstablishmentPage(@PathVariable String estabID) { .... } 

但是我不提示該方式的基本身份驗證憑據。如果我將配置中的訪問屬性更改爲ROLE_USER,所有操作都按預期工作,則會顯示auth挑戰。

默認情況下,通過身份驗證的用戶對某些操作完成匿名訪問的最佳方式是什麼?

+0

這聽起來像全局法安全性沒有被應用。你可以拋出調試器,看看它是否正在通過MethodSecurityInterceptor? –

+1

您很可能遇到[本FAQ]中涵蓋的問題(http://static.springsource.org/spring-security/site/faq/faq.html#faq-method-security-in-web-context) 。你也會發現它之前在SO上討論過。 –

+0

@luke你是對的,這正是問題所在,你想添加它作爲答案,所以我可以接受? – rooftop

回答

0

由於盧克·泰勒在他的評論中提到,問題得到了解決由以下this FAQ