CAS перенаправить на URL при успешном входе - PullRequest
0 голосов
/ 15 февраля 2019

Здесь описывается решение для обработки перенаправлений на пользовательский URL на основе условия с использованием AccessStrategy.

Это, однако, является частью логического потока неавторизованного входа в систему, поэтому приводит к тому, что еще не вошедший в систему пользователь достигает конечного URL, на который мы перенаправляем.(через getUnauthorizedUrl)

Если мы хотим перенаправить пользователя на основе условия, скажем, путем введения действия в веб-поток, как мы можем манипулировать обратным URL-адресом, который нужно изменить на пользовательский?

WebUtils.getService(requestContext) включает получатели source / originalUrl, но не имеет очевидного способа установить / манипулировать указанным значением с помощью bean-компонента действия.

ps В настоящее время используется CAS версии 5.3.x

1 Ответ

0 голосов
/ 07 марта 2019

Ответы для обычных веб-приложений из CAS создаются с использованием WebApplicationServiceResponseBuilder.

Если вы изучите этот блок , вы обнаружите, что окончательный ответ построен с использованиемWebApplicationServiceResponseBuilder боб.Он создается только условно, если существующий компонент не найден в контексте с тем же именем.Таким образом, чтобы предоставить свой собственный, вам просто нужно зарегистрировать бин с тем же именем, используя свой собственный класс @Configuration.

@Bean
public ResponseBuilder<WebApplicationService> webApplicationServiceResponseBuilder() {
    return new MyOwnWebApplicationServiceResponseBuilder(...);
}

... и затем приступайте к разработке собственного MyOwnWebApplicationServiceResponseBuilder, возможно, даже расширяя WebApplicationServiceResponseBuilder и переопределяя то, что вам нужно, для условного построения окончательной логики перенаправления.

Чтобы узнать о том, как @Configuration классы работают в целом, вы можете:

...