gpt4 book ai didi

java - 为什么 .and().httpBasic();不适用于 WebSecurityConfigurerAdapter

转载 作者:行者123 更新时间:2023-12-02 06:13:04 26 4
gpt4 key购买 nike

我正在尝试在扩展 WebSecurityConfigurerAdapter 的类中使用 Spring 的 Security 的 Java 配置。我使用的是 3.2.0.RELEASE 版本。

在 HttpSecurity.java 类中有一个示例如下。

protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/**").hasRole("USER").and()
.httpBasic();
}

当我尝试在项目中使用这个确切的示例时,.and() 方法不会返回带有 .httpBasic() 方法的对象。传递到configure()方法的HttpSecurity http对象确实有.httpBasic()。

我试图理解为什么这个规范的例子不起作用。这看起来非常简单,而且我已经在网络上看到过以相同方式使用它的代码。

我的版本不对吗?我看到有些人使用候选版本,但我认为 3.2.0.RELEASE 版本是最新的(如此处列出的 http://projects.spring.io/spring-security/ )。

最佳答案

您的代码在 Eclipse 中使用 Maven 和 Gradle 编译得很好。我猜你正在使用 IntelliJ,它有一个 bug for handling the generic return types 。同时,您可以将authorizeRequests() 移至底部,IntelliJ 将编译其余部分。

顺便说一句,我鼓励您使用以下内容:

protected void configure(HttpSecurity http) throws Exception {
http
.httpBasic()
.and()
.authorizeRequests()
.anyRequest().hasRole("USER");
}

三个变化:

  • 将authorizeRequests() 移至底部以解决 IntelliJ 错误
  • 您可以使用 anyRequest() 匹配器代替 antMatchers("/**") 这是同一件事,但增加了可读性并为您提供编译时检查
  • 更改格式以匹配 Spring Security Java Config Preview: Readability

PS:还值得注意的是http://youtrack.jetbrains.com/issue/IDEA-118527

关于java - 为什么 .and().httpBasic();不适用于 WebSecurityConfigurerAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21717098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com