0

春のセキュリティをオンにしてWebflowコントローラーをテストしようとしています:

<action-state id="search">
    <secured attributes="ROLE_ADMIN"/>
...
</action-state>

AbstractXmlFlowExecutionTestsサブクラスを使用しています。

これで、「セキュア」タグがなくてもテストは正常に実行されます (セキュリティのモックは作成しません) が、セキュリティ タグを追加すると、セキュリティ例外がスローされることが予想されますが、テストは引き続き成功します。機能しない理由と、どのように構成すればよいですか? 前もって感謝します!イゴール

4

1 に答える 1

1

わかりました、解決策を見つけました: securityListener を手動で追加する必要がありました。前startFlow:

setFlowExecutionListener(getSecurityListener(new String[] {"ROLE_ADMIN_FAKE"}));

どこ

private FlowExecutionListener getSecurityListener(String[] roles) {
    List<GrantedAuthority> result = new ArrayList<>();
    for (String role: roles) {
        SimpleGrantedAuthority authority = new SimpleGrantedAuthority(role);
        result.add(authority);
    }
    Authentication auth = new PreAuthenticatedAuthenticationToken("Igor", "", result);
    SecurityContextHolder.getContext().setAuthentication(auth);
    return new SecurityFlowExecutionListener();
}
于 2013-03-08T20:21:02.087 に答える