react重定向到登录(如果未经过身份验证)-spring安全

ix0qys7i  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(342)

我有一个java/jsf web应用程序,其中包含一个rest api和基于spring安全会话的身份验证。
我目前正在为使用此api构建一个react小应用程序,并希望在未登录时将用户重定向到登录(jsf)页面。
到目前为止,我只是将登录页面作为数据返回。不确定这是否必须固定在Spring或React侧,以及如何进行。
谢谢

getSchedulesByFarmAndDate(farmId, startDate, endDate) {
    return axios.get(
      authService.getApiUrl() +
      `/reports/schedules/filterByFarmAndDate?id=${farmId}`, { withCredentials: true }
    );
  }


68de4m5k

68de4m5k1#

我遇到的问题是,我的java应用程序已经有了一个登录页面(jsf),因此除非调用api,否则无法在react中知道用户是否登录。通过在spring安全配置中执行以下操作,我找到了一种从spring返回401的方法:

http.exceptionHandling().defaultAuthenticationEntryPointFor(
   getRestAuthenticationEntryPoint(),
   new AntPathRequestMatcher("/api/**")
);

private AuthenticationEntryPoint getRestAuthenticationEntryPoint({
    return new HttpStatusEntryPoint(HttpStatus.UNAUTHORIZED);
}

这样,如果api返回401代码进行响应,我将重定向到登录页面。这不是最干净的方法,但可以作为起点。

相关问题