Обычная проверка подлинности не работает для веб-службы SOAP с Active Directory LDAP в Spring Boot - PullRequest
0 голосов
/ 28 августа 2018

Базовая аутентификация HTTP не выполняется во время тестирования запроса SOAP от пользовательского интерфейса SOAP, но работает при попытке доступа к wsdl из веб-браузера.

Я добавил детали аутентификации в SOAP UI также на вкладке Аутентификация с деталями, как показано ниже:

  1. Тип авторизации: Global HTTP Basic
  2. Имя пользователя: ****
  3. Пароль: ****
  4. Домен: test.com // здесь данный домен, настроенный в LDAP Config

Получение ниже журналов ошибок на консоли при тестировании с SOAP UI:

Getting " ExceptionTranslationFilter - Access is denied (user is anonymous); redirecting to authentication entry point 
org.springframework.security.access.AccessDeniedException: Access is denied 
" 
[DEBUG] 2018-08-28 12:08:33.070 [http-nio-36454-exec-3] AndRequestMatcher - Trying to match using Ant [pattern='/**', GET] 
[DEBUG] 2018-08-28 12:08:33.070 [http-nio-36454-exec-3] AntPathRequestMatcher - Request 'POST /error' doesn't match 'GET /** 
[DEBUG] 2018-08-28 12:08:33.070 [http-nio-36454-exec-3] AndRequestMatcher - Did not match 
[DEBUG] 2018-08-28 12:08:33.070 [http-nio-36454-exec-3] HttpSessionRequestCache - Request not saved as configured RequestMatcher did not 

Config (), как показано ниже:

@Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests().anyRequest().fullyAuthenticated().and().httpBasic().authenticationEntryPoint(authEntryPoint);

        http.exceptionHandling().authenticationEntryPoint(authEntryPoint);

    }

Что-нибудь нужно добавить в класс WsConfigurerAdapter, кроме defaultWsdl11Definition для вызова веб-службы SOAP для Authenticate в Spring Boot?

, а также добавил приведенный ниже код в SOAPWebServiceConfig.java:

@Bean
    public XwsSecurityInterceptor securityInterceptor(){
        XwsSecurityInterceptor securityInterceptor = new XwsSecurityInterceptor();
        //Callback Handler -> SimplePasswordValidationCallbackHandler
        securityInterceptor.setCallbackHandler(callbackHandler());
        //Security Policy -> securityPolicy.xml
        securityInterceptor.setPolicyConfiguration(new ClassPathResource("securityPolicy.xml"));
        return securityInterceptor;
    }

    @Bean
    public SimplePasswordValidationCallbackHandler callbackHandler() {
        SimplePasswordValidationCallbackHandler handler = new SimplePasswordValidationCallbackHandler();
        handler.setUsersMap(Collections.singletonMap("user", "password"));
        return handler;
    }

    //Interceptors.add -> XwsSecurityInterceptor
    @Override
    public void addInterceptors(List<EndpointInterceptor> interceptors) {
        interceptors.add(securityInterceptor());
    }

Может кто-нибудь, пожалуйста, помогите в этом.

1 Ответ

0 голосов
/ 05 июня 2019
Try using this in config():
@Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests().anyRequest().fullyAuthenticated().and().csrf().disable().httpBasic();
    }

And when you said Basic Authentication, select "Basic" in SOAP UI Authorization.
...