我为Web应用程序设置了spring安全性。我想制定全局安全规则(允许所有经过身份验证的用户使用 GET 并仅允许在其他 http 方法上使用角色 ADMIN(,并使用@Secured
注释将自定义规则添加到端点。
当我像那个只有角色的用户一样进行配置和@Secured
注释时SUPER_USER无法访问该端点
override def configure(http: HttpSecurity): Unit = {
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers(HttpMethod.GET, ALL)
.permitAll()
.and()
.authorizeRequests()
.antMatchers(ALL).hasRole("ADMIN")
}
@DeleteMapping(value = Array("/{id}"))
@Secured(Array("SUPER_USER"))
def delete(@PathVariable("id") id: String): Unit = {...}
我希望有全局安全规则和自定义规则与@Secured
.有什么办法可以做到这一点吗?
您可以使用@PreAuthorize。它将解决您的问题。
@PreAuthorize("hasRole('" + <Your Role> + "')")