【问题标题】:Disable csrf using Java configuration使用 Java 配置禁用 csrf
【发布时间】:2015-04-26 08:52:26
【问题描述】:

美好的一天,

我正在尝试学习 Spring。 我目前正在做这个指南:http://spring.io/guides/gs/consuming-rest/

我已按照所有说明进行操作,但是,当我尝试运行该应用程序时, 403 禁止显示。

我上网查了一下,发现是csrf保护的原因。 因此,我开始在网上搜索如何禁用 csrf。 这是我的 Java 配置:

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable();
    }
}

我的问题是,我该如何使用这个配置? 具体应该在代码的哪一部分插入?

这是教程中所述的其他 2 个类。它们都属于同一个包(你好)。

@JsonIgnoreProperties(ignoreUnknown = true)
public class Page {
    private String name;
    private String about;
    private String phone;
    private String website;

    public String getName() {
        return name;
    }

    public String getAbout() {
        return about;
    }

    public String getPhone() {
        return phone;
    }

    public String getWebsite() {
        return website;
    }
}

public class Application {

    public static void main(String[] args) {
        RestTemplate restTemplate = new RestTemplate();
        Page page = restTemplate.getForObject("http://graph.facebook.com/pivotalsoftware", Page.class);
        System.out.println("Name:       " + page.getName());
        System.out.println("About:      " + page.getAbout());
        System.out.println("Phone:      " + page.getPhone());
        System.out.println("Website:    " + page.getWebsite());
    }

}

【问题讨论】:

  • 美好的一天 :) 链接的指南适用于“使用 REST”(即客户端)的项目。 CSRF 保护是在服务器端设置的,而不是在客户端设置的(或者这将是一个愚蠢的保护;p)。
  • 我明白了。那么您如何解释为什么我不断收到 403 Forbidden 错误消息?
  • 你从哪里得到这个结果的?我在浏览器中尝试了graph.facebook.com/pivotalsoftware,它成功了。但是,当我使用教程在 Spring 中尝试它时,我收到 403 Forbidden 错误。
  • 我使用了一些命令行工具,也许你应该发布你当前的代码

标签: java spring


【解决方案1】:

WebSecurityConfig 类上添加@Configuration,它会在您启动Spring 应用程序时自动扫描。您无需编写任何代码。

这里是@Configuration的代码

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable();
    }
}

【讨论】:

  • 很遗憾,@Configuration 不起作用。我尝试运行 Application.java 并显示错误 403 Forbidden。 WebSecurityConfig.java 与 Application.java 和 Page.java 在同一个包中
【解决方案2】:

确保您的网址有效。

在我的情况下,url 是由代码生成的,并且在不同的情况下,所以我得到了 403 禁止错误。花大量时间尝试通过启用安全配置来解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 2019-07-09
    • 2017-03-12
    • 2017-12-28
    • 2021-05-06
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多