Аутентификация LDAP и SSO в проекте Spring Boot

В настоящее время я работаю над новым проектом (от scracth), начатым с Spring Boot with Spring Security.

Мне нужно реализовать два способа аутентификации в одном и том же REST API. Сначала аутентификация SSO и аутентификация LDAP, выбор делает пользователь, устанавливая флажок в веб-приложении, которое передает запрос аутентификации в API.

Мой вопрос: как я могу этого добиться? Я уже реализовал аутентификацию LDAP или аутентификацию SSO, но никогда не использовал оба в одном проекте, я не нашел никакой документации по этому поводу

С Уважением

2
0
1 165
1

Ответы 1

похоже, вам нужно реализовать свой собственный AuthenticationProvider. Смотрите код ниже:

@Component
public class CustomAuthenticationProvider implements AuthenticationProvider {

@Override
public Authentication authenticate(Authentication authentication) 
  throws AuthenticationException {

    String name = authentication.getName();
    String password = authentication.getCredentials().toString();

    if (shouldAuthenticateAgainstThirdPartySystem()) {

        // use the credentials
        // and authenticate against the third-party system
        return new UsernamePasswordAuthenticationToken(
          name, password, new ArrayList<>());
    } else {
        return null;
    }
}

@Override
public boolean supports(Class<?> authentication) {
    return authentication.equals(
      UsernamePasswordAuthenticationToken.class);
}
}

код от: http://www.baeldung.com/spring-security-authentication-provider

в shouldAuthenticateAgainstThirdPartySystem вы можете проверить запрос (https://stackoverflow.com/a/26323545/878361) и решить использовать ldap или sso.

Другие вопросы по теме