現在のプロジェクトでは、JSFとSpring Frameworkを統合しています。私は、Spring Securityを使用して認証と承認を処理したいと考えています。これまでのところ、私はPasswordEncoder
とAccessDecisionVoter
のカスタムを実装しています。今私は@Secured
注釈を使用してメソッドを保護しようとしていますが、私はそれが期待しているように動作させることはできません。Springセキュリティによるメソッドの保護
注釈は、JSFレイヤーから直接呼び出されるBeanメソッドに対してのみ機能します。
@Named("foobarBean")
@Scope("access")
public class FoobarBean
{
@Secured("PERMISSION_TWO")
public void dummy()
{
}
@Secured("PERMISSION_ONE")
public String save()
{
dummy();
}
}
)メソッド(SAVEこのようなJSF層から呼び出される:ここでは単純化した例です
<h:commandButton id="save" action="#{foobarBean.save}" />
当社AccessDecisionVoter
その後、PERMISSION_ONEに投票するように求められますがPERMISSION_TWO上ないれます。これは設計どおりに動作していますか(そうではないことを望んでいますか)、何か間違っているのですか?
私はもっとコードや設定を投稿したいと思いますが、どの部分が関連しているのかわからないので、この投稿を混乱させたくありません。
これはsave()メソッドが呼び出されていて、うまくいきました。しかしsave()は安全なメソッドであるdummy()を呼び出します。私は、メソッドdummy()が必要な権限をメソッドsave()によって呼び出されたときにチェックすることを期待しています... –