我正在使用Apache cxf和spring boot通过基本身份验证来设置SOAP服务。我正在尝试使用此服务,但不知道如何传递用户名和密码。
这是我的消费者:
public class Consumer {
private Service service;
public Consumer() throws MalformedURLException {
URL wsdlURL = new URL("http://localhost:8081/soap/booksService?wsdl");
QName SERVICE_NAME = new QName("http://service_interface.san.com/", "LibraryImplService");
service = Service.create(wsdlURL,SERVICE_NAME);
}
}
这里的服务的安全配置:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("admin").password("admin1").roles("ADMIN");
}
@Override
public void configure(HttpSecurity http) throws Exception{
http.authorizeRequests()
.antMatchers("/soap/**").hasRole("ADMIN")
.and()
.httpBasic()
.and()
.csrf().disable();
}
}
我已经看到很多BindingProvider
的解决方案,但是由于身份验证问题,我无法初始化service = Service.create(wsdlURL,SERVICE_NAME);
,因此我似乎无法使它们正常工作。