Запустить выполнение метода после аутентификации - PullRequest
1 голос
/ 06 июня 2019

Я использую Angluar в качестве клиента и Spring Boot в качестве сервера.Некоторые провайдеры будут звонить напрямую на мой сервер в определенной (Get / Post) конечной точке.Если пользователь аутентифицирован, выполнение метода начнется нормально, если пользователь не перенаправлен на логин -ui (angluar-client), после успешного входа пользователь перенаправляется на домашнюю страницу, но я хочу начать выполнение предыдущего запроса (Get / PostsingleSignOnServicePost). Как я могу решить это?

 @PostMapping(value = ["/sso"])
    fun singleSignOnServicePost(
            request: HttpServletRequest,
            response: HttpServletResponse,
            authentication: Authentication,
            @RequestParam(value = "SAMLRequest") samlRequest: String) {
       //.......
}

 override fun configure(http: HttpSecurity) {
        http
                .csrf().disable()
                .exceptionHandling().authenticationEntryPoint(LoginUrlFilter("https://xxxx/login"))
                .and()
                .requestMatchers()
                .antMatchers(LOGIN_ENDPOINT_SUFFIX)
                .antMatchers(OAUTH_AUTHORIZATION_ENDPOINT_SUFFIX)
                .antMatchers(SAML_ENDPOINT_SUFFIX)
                .antMatchers(TWO_FACTOR_DEVICE_SETUP)
                .and()
                .formLogin().loginPage()(LOGIN_ENDPOINT_SUFFIX).permitAll().successHandler( authenticationSuccessHandler)

}

1 Ответ

0 голосов
/ 06 июня 2019

Используйте LocalStorage для хранения запрошенной конечной точки перед перенаправлением на вход пользователя в систему под углом.

(или)

На стороне сервера создайте session и сохраните запрошенную конечную точку вsession, а затем выполните authentication.

Используйте значение, сохраненное в session / LocalStorage, для достижения конечной точки.

...