gpt4 book ai didi

Java + Spring Boot + REST 安全问题

转载 作者:行者123 更新时间:2023-12-01 22:23:00 26 4
gpt4 key购买 nike

我是 Java 新手。我正在使用 Spring Boot + OAuth2 身份验证 + Swagger 创建 REST api。

我想做的显然是让 swagger 页面允许匿名访问,并且/token/oauth 端点需要基本身份验证。

对于我的 Controller ,我设置为使用 @PreAuthorize,通常与 #oauth2.hasScope('xxx') 一起使用。我希望有一些 get 方法,允许在与锁定方法相同的 Controller 中进行匿名 GET。

所以...我所做的是在 ResourceServerConfig 中将这一行设置为:

http.authorizeRequests().antMatchers("/*").permitAll();

所以基本上,一切都是允许的,然后 @PreAuthorize 会覆盖我想要保护的任何内容。

我宁愿使用 PreAuthorize 定义哪些方法被锁定在 Controller 中,然后维护一个巨大的匿名路径匹配器列表。对我来说似乎更干净。

这一切都按预期工作。任何没有 @PreAuthorize 的方法都是开放的,并且有 @PreAuthorize 的方法都需要身份验证。

("/*").permitAll() 有什么危险吗?由于我是 Java 新手,我不确定这是否会造成任何漏洞?似乎有一些“隐藏”端点,因为我必须向 swagger 配置添加一个过滤器:RequestHandlerSelectors.basePackage("org.xxx.yyy") 以仅显示我的实际 API。

只是想了解任何后果。

谢谢。

最佳答案

@SledgeHammer,不要将其保持打开“/”,而是在 Controller 中处理它以将其重定向到某个位置,而不是将“/”保持为permitAll,因此将其应用于特定的url模式。

关于Java + Spring Boot + REST 安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58576754/

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