认证后开始执行方法
Posted
技术标签:
【中文标题】认证后开始执行方法【英文标题】:Start method execution after authentication 【发布时间】:2019-10-21 19:24:48 【问题描述】:我使用 Angular 作为客户端,使用 Spring Boot 作为服务器。一些提供者将在特定(获取/发布)端点中直接调用我的服务器。如果用户通过身份验证,方法的执行将正常开始,如果不是,用户被重定向到登录-ui(角度客户端),成功登录后用户被重定向到主页,但我想开始执行上一个请求(获取/发布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)
【问题讨论】:
【参考方案1】:使用LocalStorage
存储在重定向到用户登录之前请求的端点是什么。
(或)
在服务器端创建session
并将请求的端点存储在session
中,然后执行authentication
。
使用存储在session
/ LocalStorage
中的值来命中端点。
【讨论】:
以上是关于认证后开始执行方法的主要内容,如果未能解决你的问题,请参考以下文章