Я пытался сделать то же самое. API не кажется хорошо продуманным. Если вы попытаетесь использовать функцию автоматической настройки весенней загрузки, единственный способ, который я нашел, - это исключить эту конфигурацию
Saml2RelyingPartyRegistrationConfiguration
и предоставить для этого свой собственный класс.
Поскольку все это локально для пакета , вам нужно перенести почти весь пакет
org.springframework.boot.autoconfigure.security.saml2
в свое собственное приложение, сначала полностью отключив пакет из spring.
В итоге вы получите
CustomRegistrationConfiguredCondition
CustomSaml2LoginConfiguration
CustomSaml2RelyingPartyAutoConfiguration
CustomSaml2RelyingPartyRegistrationConfiguration
по крайней мере. Убедитесь, что ссылки между классами тоже обновлены.
Теперь вам необходимо обновить следующий метод в CustomSaml2RelyingPartyRegistrationConfiguration:
private RelyingPartyRegistration asRegistration(String id, Registration properties) {
RelyingPartyRegistration.Builder builder = RelyingPartyRegistration.withRegistrationId(id);
builder.assertionConsumerServiceUrlTemplate(
"{baseUrl}" + Saml2WebSsoAuthenticationFilter.DEFAULT_FILTER_PROCESSES_URI);
builder.idpWebSsoUrl(properties.getIdentityprovider().getSsoUrl());
builder.remoteIdpEntityId(properties.getIdentityprovider().getEntityId());
builder.localEntityIdTemplate("template_you_like");
builder.credentials((credentials) -> credentials.addAll(asCredentials(properties)));
return builder.build();
}
В качестве альтернативы вы также можете скопировать Saml2RelyingPartyProperties в свой проект и добавьте туда все необходимые поля. Таким образом, вы сможете установить свойства в yaml или файле свойств. Не забудьте использовать эти значения в методе asRegistration, упомянутом выше.