У меня есть SOAP-функция с Spring WS. Я пытаюсь добавить базовый http auth. Я использую эту конфигурацию веб-службу:Обычная проверка подлинности не работает в Spring-Boot WS Soap service
@EnableWs
@Configuration
public class WebServiceConfig extends WsConfigurerAdapter {
@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
MessageDispatcherServlet servlet = new MessageDispatcherServlet();
servlet.setApplicationContext(applicationContext);
return new ServletRegistrationBean(servlet);
}
@Bean(name = "cards")
public Wsdl11Definition wsdlDefinition() {
SimpleWsdl11Definition wsdl11Definition = new SimpleWsdl11Definition();
wsdl11Definition.setWsdl(new ClassPathResource("cards.wsdl"));
return wsdl11Definition;
}
}
и эту конфигурацию пружинной безопасности:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.authorizeRequests().anyRequest().authenticated()
.and().httpBasic()
.and().authorizeRequests().antMatchers("*.wsdl").permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
, но когда я бег весну-загрузку и отправку запросов на обслуживание, он возвращает ответы даже без аутентификации , Что я настроил неправильно?
UPD: Кроме того, если я бегу весна-ботинок со следующими изменениями в конфигурации:
//@EnableWs
@Configuration
public class WebServiceConfig extends WsConfigurerAdapter {
//@Bean
//public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
// MessageDispatcherServlet servlet = new MessageDispatcherServlet();
// servlet.setApplicationContext(applicationContext);
// return new ServletRegistrationBean(servlet);
//}
@Bean(name = "cards")
public Wsdl11Definition wsdlDefinition() {
SimpleWsdl11Definition wsdl11Definition = new SimpleWsdl11Definition();
wsdl11Definition.setWsdl(new ClassPathResource("cards.wsdl"));
return wsdl11Definition;
}
}
работает нормально (требует авторизацию для запросов), но изменения отображения URL в [/ услуги/*], не желаемое отображение для меня. Извините, я новичок с весной.
Как это макет службы? Как вы это используете ... Также ваша настройка безопасности неверна, так как ваш '* .wsdl' будет переопределен предыдущим утверждением, что вам нужна безопасность для всего. (вопросы заказа). –
Я имею в виду, что это мыльный сервис, как в [этом примере] (https://spring.io/guides/gs/producing-web-service/). – ipatina
Также не работает, что вы тестируете (как вы тестируете) и как загружаются вещи. Вы только сбрасываете какую-то конфигурацию и ожидаете помощи, но в вашем вопросе слишком мало информации. –