Spring REST 控制器的安全性
Spring security for REST controllers
我正在为我的 REST 控制器和文档使用 Spring MVC 和 Spring 安全性。我想保护三个不同的路径:
- "/api/**"
- "/api-文档
- "/api-文档”
显然,此代码仅适用于最后一个:“/api-documentation”。我也尝试过 antMatchers("/api/**","/api-docs","/api-documentation") 但我不知道如何正确配置.有什么想法吗?
http
.csrf().disable()
.exceptionHandling().authenticationEntryPoint(entryPoint())
.and()
.antMatcher("/api/**")
.antMatcher("/api-docs")
.antMatcher("/api-documentation")
.authorizeRequests()
.anyRequest().hasRole("REST")
.and()
.httpBasic();
您必须指定谁可以访问指定路径:
.antMatchers("/api/**").permitAll()
.antMatchers("/api-docs").hasRole("ADMIN")
这里有一些路径匹配建议。
"/api/**"
将匹配 /api/x/y
.
等所有方法
"/api-docs"
只会与 /api-docs
匹配。同样 /api-documentation
.
如果你添加 "/api-docs/*"
它将映射 /api-docs/x
。
因此,
http
.csrf().disable()
.exceptionHandling().authenticationEntryPoint(entryPoint())
.and()
.antMatchers("/api/**","/api-docs","/api-documentation")
.authorizeRequests()
.anyRequest().hasRole("REST")
.and()
.httpBasic();
必须工作,根据您的路径规范要求。
对于这种情况,只需要将 antmatcher 更改为 .antMatcher("/api*")
删除其他两个。
我正在为我的 REST 控制器和文档使用 Spring MVC 和 Spring 安全性。我想保护三个不同的路径:
- "/api/**"
- "/api-文档
- "/api-文档”
显然,此代码仅适用于最后一个:“/api-documentation”。我也尝试过 antMatchers("/api/**","/api-docs","/api-documentation") 但我不知道如何正确配置.有什么想法吗?
http
.csrf().disable()
.exceptionHandling().authenticationEntryPoint(entryPoint())
.and()
.antMatcher("/api/**")
.antMatcher("/api-docs")
.antMatcher("/api-documentation")
.authorizeRequests()
.anyRequest().hasRole("REST")
.and()
.httpBasic();
您必须指定谁可以访问指定路径:
.antMatchers("/api/**").permitAll()
.antMatchers("/api-docs").hasRole("ADMIN")
这里有一些路径匹配建议。
"/api/**"
将匹配 /api/x/y
.
"/api-docs"
只会与 /api-docs
匹配。同样 /api-documentation
.
如果你添加 "/api-docs/*"
它将映射 /api-docs/x
。
因此,
http
.csrf().disable()
.exceptionHandling().authenticationEntryPoint(entryPoint())
.and()
.antMatchers("/api/**","/api-docs","/api-documentation")
.authorizeRequests()
.anyRequest().hasRole("REST")
.and()
.httpBasic();
必须工作,根据您的路径规范要求。
对于这种情况,只需要将 antmatcher 更改为 .antMatcher("/api*")
删除其他两个。