3

問題: Web サービス メソッドに @Secured アノテーションを追加すると、エンドポイントが無効になり、ws エンドポイントの呼び出し時にエンドポイント マッピングが見つかりませんというエラーが発生します。

背景: 私の Spring Web Service は、UsernameToken と Timestamp を使用して消費者を認証するように保護されています。これは、@Secured を追加してロールベースの承認を適用するまではまったく問題なく機能します。インターセプターは、<sws:interceptors> を使用して spring-ws-servlet.xml で構成されます。フレームワークのバージョン:

  • 春の ws: 2.0.5.RELEASE
  • 春の ws セキュリティ: 2.0.5.RELEASE
  • 春のセキュリティ: 3.0.7.RELEASE
  • wss4j: 1.5.12

これが私がやろうとしていることのサンプルです。

終点:


...

    @Endpoint
    public class XYZEndpoint implements XYZService{
        @Override
        @PayloadRoot(localPart = XYZ_REQUEST, namespace = NAMESPACE_XYZ)
        //@Secured({"ROLE_XYZ"})
        public XYZResponse produceXYZ(XYZRequest request) {
                    ...
            return new XYZResponse();
        }
    }

...

spring docs で説明されているように、以下の global-method-security を使用して @Secured アノテーションを有効にしています。

spring-ws-servlet.xml


...

    <security:global-method-security secured-annotations="enabled" />

....
4

1 に答える 1