java - spring security Rest API错误-403禁止

标签 java spring spring-security

我在 spring boot 项目上使用 Spring security,我试图使用我的 Controller 的端点,但是当我从我的 js 进行调用时,我收到错误:403 forbidden。

我的安全配置:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .authorizeRequests()
            .antMatchers("/resources/**").permitAll()
            .anyRequest().authenticated()
            .and()
            .formLogin()
            .loginPage("/login/")
            .defaultSuccessUrl("/inicio/")
            .usernameParameter("username").passwordParameter("password")
            .permitAll()
            .and()
            .logout().logoutSuccessUrl("/login/")
            .permitAll();
}

  @Override
  public void configure(AuthenticationManagerBuilder auth) throws    Exception   {
      auth
          .userDetailsService(userDetailsService)
          .passwordEncoder(new BCryptPasswordEncoder());

}

我的 Controller 端点:

 @RequestMapping( value="/getUsuarios")
 @ResponseBody
public UsuarioTo getUsuarios( Model model) throws Exception {
    UsuarioTo to = getTo();

    try
    {
        to.setListaUsuario(usuarioRepository.findAll());
    }catch (Exception e)
    {
        throw new  Exception("Error al obtener los usuarios "+e.getMessage() );
    }


    return to;
}

我的 Ajax 调用:

function getUsers(callback)
 {

  var posting = $.post( Endpoint +'getUsuarios', function(data) {

   if (callback)callback(data.listaUsuario);
})
  .done(function() {

  })
  .fail(function(ex) {
    message("error","ocurrio un error al obtener los usuarios:"    +ex.status+ ex.statusText+ ex.responseJSON.error);

  })
  .always(function() {
  });

  posting.always(function() {
  });
 }

最佳答案

您需要随请求一起发送 csrf token ( https://docs.spring.io/spring-security/site/docs/current/reference/html/csrf.html#csrf-include-csrf-token-ajax ) 或为此请求禁用 csrf。

由于您没有配置 csrf,因此使用默认设置,因此每个帖子都需要 csrf token 。

关于java - spring security Rest API错误-403禁止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43462079/

相关文章:

Java 通配符分隔符

java - spring集成模式 validator 的使用?

java - Spring无法使用@PropertySource找到类路径资源

spring - org.springframework.security.authentication.AuthenticationCredentialsNotFoundException : An Authentication object was not found in the SecurityContext

java - 每秒更改 TextView 中的文本

java - 使用 Java 反射访问测试用例中的 protected 方法

Java 虚函数调用

java - 如何在 Spring Data Mongodb 中进行 GroupBy 而不进行聚合?

java - Spring Security OAuth2 的 Web 和移动客户端

grails - 添加Spring Security插件3.1.1后将无法加载Grails 3.2.4应用程序