我刚开始使用spring boot,我想为我的后端创建一个rest api,但我也喜欢spring security的身份验证系统,我想在我的应用程序中使用它,而不必为此创建自己的resti api部分代码。
这是否可行,以这种方式做得更好而不是把所有东西都作为休息api?
答案 0 :(得分:0)
您必须将spring安全会话管理配置为无状态
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable().exceptionHandling().authenticationEntryPoint(authenticationEntryPoint()).and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().authorizeRequests()
}
配置身份验证入口点以返回HTTP状态而不是视图
@Bean
public AuthenticationEntryPoint authenticationEntryPoint() {
return new AuthenticationEntryPoint() {
@Override
public void commence(HttpServletRequest resq, HttpServletResponse resp, AuthenticationException arg2)
throws IOException, ServletException {
resp.sendError(HttpStatus.UNAUTHORIZED.value(), "Secured URL Hit");
}
};
}
继续使用通常的身份验证提供程序