2016-05-31 10 views
1

)IMはJAXBとSpringWSを使用してWebサービスを開発しようとします。 しかし、私は質問があります。 私はwssのセキュリティを置いて、ヘッダをどのように作成するのですか?JAXBヘッダーセキュリティー(Spring-WS

これは私の実際のコードです:これは、クライアント

public class MonsterWSClient extends WebServiceGatewaySupport { 


    public JobsResponse updateJob(Job request) { 

     return (JobsResponse) getWebServiceTemplate().marshalSendAndReceive(request, 
       new SoapActionCallback(getDefaultUri() + "/createOffer")); 
    } 
} 

であり、これがメインです

CONTEXTスプリングCLIENT

@Configuration 
public class MonsterWSClientContext { 

    private static final String URL = "AAA"; 
    private static final String TEST_URL = "TEST"; 
    private static final String WS_URL = TEST_URL + "/soap/WSOfferService"; 

    @Bean 
    @Autowired 
    public MonsterWSClient monsterClient(Jaxb2Marshaller marshaller) { 
     MonsterWSClient client = new MonsterWSClient(); 
     client.setDefaultUri(WS_URL); 
     client.setMarshaller(marshaller); 
     client.setUnmarshaller(marshaller); 
     return client; 
    } 


    @Bean 
    public Jaxb2Marshaller marshaller() { 
     Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller(); 
     jaxb2Marshaller.setPackagesToScan(com.monster.schemas.monster.ObjectFactory.class.getPackage().getName(), 
       com.monster.schemas.monsterheader.ObjectFactory.class.getPackage().getName(), 
       com.monster.schemas.ObjectFactory.class.getPackage().getName(), 
       com.monster.webservices.monsterportal.ObjectFactory.class.getPackage().getName()); 
     return jaxb2Marshaller; 

    } 

} 

public class Test { 
    public JobsResponse callMonster(String jobRefCode, String userName, 
    InformazioniAnnuncio datiAnnuncio) 
    { 
     MonsterWSClient client = new MonsterWSClient(); 
     JobsResponse response = new JobsResponse();  
     return response = client.updateJob(createJob(jobRefCode, userName, datiAnnuncio)); 

    } 
} 
  • 私はJobオブジェクトを作成しています。
  • しかし、私はどこに私の信任状でヘッダーを置くのかわかりません。

ありがとうございます。

+0

こんにちは、私はこのアプリを起動したときに、今、私は別の問題を抱えている、エラーhome.LaunchCallで定義された名前を「検索」を持つBeanを作成するなどの

何か[MonsterWSClient]のタイプ:[com.proximainformatica.client.MonsterWSClient]タイプの適格なBeanが見つかりませんでした。依存関係:この依存関係のautowire候補となる少なくとも1つのbeanが必要です。依存関係の注釈:{};ネストされた例外はorg.springframework.beans.factory.NoSuchBeanDefinitionExceptionです:[MonsterWSClient]タイプの適格なBeanが依存関係のために見つかりませんでした:expected .. – reve

答えて

2

あなたはspring-ws-securityを使用する必要があります。このリンクspring ws securityを使用してください。このページにはすべてのセキュリティ関連の設定があり、ユーザー名とパスワードでWss4jSecurityInterceptorを設定する必要があります。不満依存性は、インデックス0でコンストラクタの引数を通して表現:この

@Bean 
    public Wss4jSecurityInterceptor securityInterceptor() { 
    Wss4jSecurityInterceptor securityInterceptor = new Wss4jSecurityInterceptor(); 
    securityInterceptor.setSecurementActions("UsernameToken"); 
    securityInterceptor.setSecurementUsername({username}); 
    securityInterceptor.setSecurementPassword({password}); 
    securityInterceptor.setSecurementPasswordType("PasswordText"); 
    securityInterceptor.setSecurementUsernameTokenElements("Created"); 
    return securityInterceptor;