對於我們當前的項目,我們正在集成JSF和Spring框架。我想使用Spring Security來處理認證和授權。到目前爲止,我已經實施了自定義的PasswordEncoder
和AccessDecisionVoter
,這些工作正常。現在我試圖確保使用@Secured
註釋(其中包括)的方法,但我無法按照我預期的那樣工作。Spring安全保護方法
似乎@Secured
註釋僅適用於直接從JSF層調用的bean方法。這裏有一個簡單的例子:
@Named("foobarBean")
@Scope("access")
public class FoobarBean
{
@Secured("PERMISSION_TWO")
public void dummy()
{
}
@Secured("PERMISSION_ONE")
public String save()
{
dummy();
}
}
保存方法()從JSF層被稱爲是這樣的:
<h:commandButton id="save" action="#{foobarBean.save}" />
我們AccessDecisionVoter
然後問上PERMISSION_ONE投票,但不上PERMISSION_TWO。這是按照設計工作(我希望不是)或者我做錯了什麼(可能是什麼?)。
我會發布更多的代碼或配置,但我不知道哪個部分是相關的,我不想混亂這篇文章。
好吧,我明白了,我很好地調用了save()方法。但是save()然後調用dummy(),這也是一種安全的方法。我期望方法dummy()在調用方法save()時被檢查所需的權限...... –