我使用Spring Secuirty 3與ACL模塊。我使用自定義PermissionEvaluator確保使用@PreAuthentication批註的方法。它的工作正常,但是每次PermissionEvaluator返回一個ACCESS_DENIED和AccessDeniedException被引發在某個點,這會停止應用程序執行。期望的行爲將是當PermissionEvaluator返回和ACCESS_DENIED,只有防止(跳過)安全的方法調用,並且應用程序的其餘部分保持正常運行。有沒有人有如何實現這個想法?Spring Security - 防止AccessDeniedException從停止應用程序正常流程
1
A
回答
0
如果您將每個電話都打包在try...catch
中,您可以獲得此行爲。基本上,因爲它是一個例外,任何正常的異常處理都將適用於它。如果您的應用程序可以處理該異常並繼續正常運行,那麼請執行該操作!
這裏是我的意思的例子:
// The 1st method that could be denied but you want to continue execution after
try {
// Call method A that will throw the exception
} catch (/*The exception you expect to be thrown and want to continue after*/){}
// The 2nd method that could be denied but you want to continue execution after
try {
// Call method B that will throw the exception
} catch (/*The exception you expect to be thrown and want to continue after*/){}
etc.
是的,它大量的開銷增加調用這些方法,但它允許執行後的繼續的相當簡單的方式引發異常。
我也會爭辯說它也比較正確,因爲調用代碼的確知道知道如何處理這些例外。這也不需要額外的Spring配置,這意味着代碼行爲仍然接近默認值,並且不依賴外部配置來確定它的行爲。
+0
問題與也就是說,它允許方法調用,而不管PermissionEvaluator的結果如何,所以它的基本類似於禁用安全性 – Chepech 2011-09-26 23:08:44
相關問題
- 1. 添加Spring Security後,我的Spring應用程序停止運行
- 2. 防止未處理的異常停止應用程序
- 3. 如何停止Spring Integration應用程序?
- 4. 不幸停止應用程序停止
- 5. 如何防止pygame應用程序停止響應
- 6. 異常不停止應用程序
- 7. GSUtil的stopchannel不能停止AccessDeniedException異常
- 8. 如何防止POST請求上的應用程序池停止?
- 9. 防止音樂停止的應用程序
- 10. 防止Android應用程序被關閉/停止
- 11. 如何防止Android顯示應用程序停止消息
- 12. 如何防止異常停止我的程序?
- 13. 應用程序已停止
- 14. 應用程序已停止 - 從火力
- 15. 當mnesia從程序中停止時,停止Erlang應用程序掛起
- 16. 如何正常停止YARN上的Spark Streaming應用程序?
- 17. django中的異常停止流程?
- 18. 傳播AccessDeniedException到Spring Security 3.2
- 19. 如何防止後臺線程中的異常終止應用程序?
- 20. 如何防止並行線程中的異常終止應用程序?
- 21. 防止重定向到Spring Security登錄
- 22. 應用程序隨機停止響應。
- 23. 我的應用程序停止響應
- 24. Android應用程序停止響應SQLCipher
- 25. 無法停止音頻錄製,線程無法正常工作,並且應用程序不幸停止
- 26. 應用程序從任務調度程序停止工作
- 27. Javascript停止事件流程
- 28. 防止關閉Java swing應用程序
- 29. 防止強制殺死應用程序
- 30. 防止卸載的應用程序
[使用@PreAuthorize Annotation阻止方法調用無例外](http://stackoverflow.com/questions/4621394/prevent-method-call-without-exception-using-preauthorize-annotation) – Chepech 2011-09-26 23:10:37