2016-05-31 10 views
1

메신저 JAXB 및 SpringWS와 함께 webservices를 개발하려고합니다. 하지만 질문이 있습니다. 어디에서 wss 보안을 설정하고 헤더를 만드는 방법은 무엇입니까?JAXB 헤더 보안 Spring-WS

이 내 실제 코드 :

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 MonsterWSClient extends WebServiceGatewaySupport { 


    public JobsResponse updateJob(Job request) { 

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

이며,이 메인입니다 :

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에 정의 된 이름 '조회'와 콩을 만드는 등의

뭔가 [MonsterWSClient] 유형의 : 종속성에 대해 [com.proximainformatica.client.MonsterWSClient] 유형의 정규 bean이 없음 :이 종속성에 대한 자동 와이어 후보로 적합한 적어도 하나의 bean이 필요합니다. 종속성 주석 : {}; 중첩 예외는 org.springframework.beans.factory.NoSuchBeanDefinitionException입니다 : [MonsterWSClient] 유형의 적격 bean이 종속성에 대해 발견되지 않았습니다 : expected .. – reve

답변

2

스프링 - 보안 - 보안을 사용해야합니다. 이 링크 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;