2015-01-26 25 views
0

嗨,我是用apring MVC項目工作,我使用的freemarker作爲我的模板引擎,我說春天secuirty到我的網頁這樣FreeMarker和春季安全的taglib尋找FO的函數列表

<#assign security=JspTaglibs["http://www.springframework.org/security/tags"] /> 

和我把在內容這個標籤,我想看到一個特定的用戶

<@security.authorize ifAnyGranted="ROLE_ADMIN"> 
    <div><h1>Hello ADMIN</h1></div> 
</@security.authorize> 

<@security.authorize ifAnyGranted="ROLE_USER"> 
    <div><h1>Hello USER</h1></div> 
</@security.authorize> 

我的問題是在哪裏可以找到像ifAnyGranted功能列表除了有這彼此的功能?這種功能是freemarker還是spring安全taglibs?因爲我看春季安全taglib文件,我不能找到這個功能,他們使用這樣的功能,如access="hasRole('guest'),如果我嘗試在我的網頁它不工作,我在哪裏可以找到像ifAnyGranted或任何類似的功能是什麼名稱這個圖書館,我使用,我嘗試在谷歌FreeMarker和春季安全搜索和不能找到很多信息

+0

http://docs.spring.io/spring-security/site/docs/3.2.5.RELEASE/reference/htmlsingle/#taglibs – holmis83 2015-01-26 20:29:10

+0

我在那個鏈接中使用CRTL + F,我找不到任何'ifAnyGranted'或任何類似的功能 – stackUser2000 2015-01-26 20:42:39

回答

0

如果我理解正確的文件,某些功能/特性沒有列出,因爲它們使用Spring Security 2.0遺留選項並且不鼓勵使用它們。您可以將它們編寫爲安全表達式。

老辦法:

<@security.authorize ifAnyGranted="ROLE_USER,ROLE_ADMIN"> 

新方法:

<@security.authorize access="hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')"> 

如果您仍然要使用舊的方式,authz package爲您提供了可用的屬性。

+0

它給了我這個錯誤,當我嘗試使用hasRole'詞法錯誤:之後遇到 「\」 hasRole(\ 'ROLE_ADMIN \')> \ r \ n

Hello ADMIN

\ r \ n \ r \ n \ r \ n「]] – stackUser2000 2015-01-26 21:35:29

+0

@ stackUser2000看起來像一個freemarker語法錯誤。 – holmis83 2015-01-26 22:02:41

+0

是的,謝謝我錯過了''' – stackUser2000 2015-01-29 13:17:15