你能把弹簧的安全性和休息时间混合在一起吗?

时间:2018-01-15 08:43:42

标签: java rest spring-boot

我刚开始使用spring boot,我想为我的后端创建一个rest api,但我也喜欢spring security的身份验证系统,我想在我的应用程序中使用它,而不必为此创建自己的resti api部分代码。

这是否可行,以这种方式做得更好而不是把所有东西都作为休息api?

1 个答案:

答案 0 :(得分:0)

是的,这是非常可行的。步骤进行:

  1. 您必须将spring安全会话管理配置为无状态

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable().exceptionHandling().authenticationEntryPoint(authenticationEntryPoint()).and()
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().authorizeRequests()
    

    }

  2. 配置身份验证入口点以返回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");
            }
        };
    }
    
  3. 继续使用通常的身份验证提供程序