【发布时间】:2021-07-01 23:47:00
【问题描述】:
我有一个 Web 应用程序,它具有集成到 UI 的控制器的端点,以及通过 REST 控制器公开的另一组端点。 UI Controller 通过 SSO 进行身份验证,而 Rest Controller 端点通过基本身份验证。由于 UI 控制器端点属于请求映射 (/) 而其余控制器端点属于 "/non-ui/" ,我如何防止任何对 ui 具有 sso 访问权限的人访问 "/non-ui" 端点?
基本上我想在“/non-ui/”端点上禁用 spring 安全性。
我已经使用下面的网络安全配置来排除。但是,这意味着任何对 ui ("/") 具有 sso 访问权限的人都可以访问 "/non-ui/**"。
public void configure(WebSecurity webSecurity) {
webSecurity.ignoring().antMatchers("/non-ui/**");
}
如果我使用以下建议,尽管它会拒绝任何有权访问 ui 的人访问“/non-ui/”端点。但是,如果有人尝试通过第三方服务访问“/non-ui/”端点,它也会受到干扰,因为无论如何请求只会在提到denyAll的地方登陆应用程序。
.authorizeRequests()
.antMatchers("/non-ui/**")
.denyAll()
【问题讨论】:
标签: spring spring-boot rest spring-security basic-authentication