2014-03-18 83 views
2

我來自PHP世界。我最常用的框架是Symfony,它基於Spring的想法。其中如果包名爲JMSSecurityExtraBundle支持作用ROLE_IDDQD,你可以通過configuration激活。使用該角色進行身份驗證可以有效地繞過所有安全檢查 - 這些Web安全性約束或直接對域層中的類的方法進行約束。有沒有辦法繞過Spring Security的所有安全檢查?

由於安全相關的測試需要與特定角色的用戶進行身份驗證,我想驗證用戶編程創建認證對象,並把它傳遞給安全上下文。這樣我就可以直接在域代碼上測試安全約束,而不需要考慮任何用戶界面。

由於很多領域的方法將被保護,它會阻止我對某些測試設置燈具由於目前身份驗證的用戶將沒有足夠的權限來做到這一點。這是我開始使用ROLE_IDDQD - 我創建,將採取任何可能的領域層做任何事情,繞過安全限制的功能的方法:

$user = $this->iddqd(function() { 
    return $this->userManager->save($this->aUser()); 
}); 

這種方法會記住當前的認證,與ROLE_IDDQD重新驗證,執行該函數傳入然後恢復記憶的認證。

我遷移應用Spring和尋找一種方式做同樣的春暖花開。我找不到任何提及的ROLE_IDDQD,所以我猜這部分不是基於Spring Security。是否有任何其他方式來複制此功能?

回答

0

春季安全有匿名用戶與自動分配的角色「ROLE_ANONYMOUS」的概念。你可以尋找更多的信息here

+0

系統的所有用戶都必須進行身份驗證,所以匿名角色在這裏並不適用。 –

+0

所以你想要一些機制來動態添加角色並測試你的域名,然後將這些角色重置爲最低特權角色。對 ? – Shailendra

+0

我想要一種方法來繞過需要特定角色的方法的安全檢查,即使當前登錄的用戶沒有該角色。我只需要這個測試。我不在乎這是否使用角色或其他方式來完成。 –

相關問題