2013-04-02 101 views
0

我是Java EE的新手,我試圖弄清楚如何爲每個人提供對特定資源的訪問。我已經嘗試了下面的示例,因爲它看起來很簡單,但它仍將我帶到登錄表單中,這是我在web.xml其他地方指定的登錄表單。每個人的Java EE權限約束

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Everywhere</web-resource-name> 
     <description>Allow every one to access everything</description> 
     <url-pattern>/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>*</role-name> 
    </auth-constraint> 
</security-constraint> 

當我換出URL模式爲/bogus,這是不匹配,則註冊表不加載。有任何想法嗎?

+0

那麼你是說一切都不可訪問,除了一些資源? – engma

+0

它不允許訪問所有資源。我的假設是,爲該角色名稱放置該*(並且沒有其他安全約束)將允許任何用戶訪問該站點中的任何內容,但似乎沒有這樣做。 – sgcharlie

回答

1

的「*」的角色,與含義的語義(不角色,甚至用戶)「中的任何角色的所有用戶」在Java EE中只加7

由於Java EE 7尚未正式發佈還,運行Java EE 6或更低版本的可能性很高。儘管(估計:最多幾周,也許更快),GlassFish 4(實現Java EE 7)將很快發佈。如果你只是爲自己學習,你可以選擇立即開始使用GlassFish 4,那裏的「*」角色確實可以工作。

+0

有沒有辦法說「這些資源,你需要認證」? – sgcharlie

+0

@sgcharlie是的,在web.xml中爲這些資源定義一個安全約束,然後將它們限制爲這個「*」角色。 –