gpt4 book ai didi

java - 禁用特定 URL Spring 的基本身份验证

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

我是 Spring 的新手,我需要为其余 Controller 的 8/10 URL 启用基本身份验证,另外 2 个应该可以在没有任何基本身份验证的情况下访问。我正在使用 gradle 按应用程序构建,因此不涉及 xml 文件。 (我看到了一些带有 web.xml 的解决方案,我没有)这是我的网络安全配置:

 @Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Override
public void configure(WebSecurity web) throws Exception {
super.configure(web);
web.ignoring().antMatchers("/abcd/**");

}

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user").password("password");

}
}

这是我的 Controller :

    @RestController
@RequestMapping(value = "/abcd")
public class PaymentController implements ElasticSearchConstants {

@RequestMapping(value = "/sample", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public static void authExpemtedController(HttpServletRequest request, HttpServletResponse response) throws Exception {
//do something
}
}

我尝试了 web.ignoring().antMatchers("/abcd/");没有帮助。当我从 postman 那里尝试时,我总是收到 401 错误:{ “时间戳”:1492274727955, “状态”:401, “错误”:“未经授权”, "message": "访问此资源需要完整的身份验证", “路径”:“/abcd/示例”

我需要公开这样一个 API,它不需要任何身份验证,而其他 API 则需要进行身份验证。

提前感谢您的帮助

更新:我知道 http.authoriseRequest().antMatchers("/abcd").permitAll()该方法只允许任何用户访问。我根本不想将任何用户信息传递给此 API。

最佳答案

您可能想引用 Section 5.4 Authorize Requests of the Spring Security docs :

Our examples have only required users to be authenticated and have done so for every URL in our application. We can specify custom requirements for our URLs by adding multiple children to our http.authorizeRequests() method. For example:

protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/resources/**", "/signup", "/about").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/db/**").access("hasRole('ADMIN') and hasRole('DBA')")
.anyRequest().authenticated()
.and()
// ...
.formLogin();
}

关于java - 禁用特定 URL Spring 的基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43428643/

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