2013-07-08 73 views
2

我剛在遺留應用程序中發現了一些奇怪的東西。有在名稱中連字符定義的安全角色:帶連字符/短劃線的安全角色名稱

App-users 
App-administrators 
App-superUsers 

我做了一些測試,以確保用戶根據自己的角色看到正確的數據,但在代碼中,我看到了request.isUserInRole()通話不被通過完整的角色名稱,而不是連字符後面的文本:

request.isUserInRole("superUsers"); 

我預計檢查角色的調用將返回false,但它們返回true。有誰知道爲什麼會發生?

+0

這個問題最好適合在[security.stackexchange](http://security.stackexchange.com/) –

+2

我不同意。我正在問一個Java-ee的特定功能,這個論壇有更多的Java-ee開發人員。 –

+2

@VikasV我不是100%肯定這個問題會更適合security.stackexchange。這似乎更關注於更一般的安全問題,而這是一個非常具體的Java EE API,甚至可能是所使用的實現中的一個錯誤。 –

回答

1

我找到了我自己的答案。顯然,有一些security-role-ref條目用於爲實際角色創建短名稱。

+1

這是特定於您的應用程序的東西嗎?如果沒有,你可以鏈接到任何導致你找到答案的文檔嗎? –

+0

這是特定於我的應用程序,但在這裏解釋安全角色引用:http://docs.oracle.com/javaee/5/tutorial/doc/bncba.html#bncbb –

相關問題