我将Angluar用作客户端,将Spring Boot用作服务器。一些提供程序将在特定的(获取/发布)端点中直接调用我的服务器。如果用户通过了身份验证,则该方法的执行将正常开始,如果未将用户重定向到login -ui(angluar-client),则成功登录后的用户将重定向到主页,但是我想开始执行上一个请求(获取/发布) singleSignOnServicePost)。我该如何解决?
@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)
}
答案 0 :(得分:0)
使用LocalStorage
存储请求的端点,然后再重定向到angular用户登录。
(或)
在服务器端创建session
并将请求的端点存储在session
中,然后执行authentication
。
使用存储在session
/ LocalStorage
中的值来命中端点。