首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用Spring Security上的Http-methods

禁用Spring Security上的Http-methods
EN

Stack Overflow用户
提问于 2016-08-01 02:50:19
回答 2查看 1.9K关注 0票数 0

我对Spring安全是个新手,需要帮助才能禁用http方法,如选项、PUT或DELETE。

EN

回答 2

Stack Overflow用户

发布于 2016-08-01 15:40:38

Spring拦截器url提供了一个方法参数,向下的大小是它只允许指定一个方法。

您可以通过为同一模式指定几个interceptor-url项来克服这一点

代码语言:javascript
运行
复制
<http auto-config="true" use-expressions="true" >
     <intercept-url pattern="/login " access="permitAll" />

    <intercept-url pattern="/**" access=" hasRole('ROLE_ADMIN')" method="GET" />
    <intercept-url pattern="/**" access=" hasRole('ROLE_ADMIN')" method="POST" />
</http>

另一种选择是编写自己的spring-security-expression,例如isPermitedMethod,下面的blog可能会有所帮助。

另请参阅:

Using Spring Security, how can I use HTTP methods (e.g. GET, PUT, POST) to distingush security for particular URL patterns?

票数 1
EN

Stack Overflow用户

发布于 2016-08-01 09:23:09

为什么不只有一个只允许GET的控制器方法呢?任何其他HTTP方法都将被自动拒绝。

代码语言:javascript
运行
复制
@Controller
@RequestMapping("/releaseupdates")
public class ReleaseUpdateController {

   @RequestMapping(method=RequestMethod.GET)
   public String getRequest() {
      //do something, only accepts GET
   }


}

如果您希望允许其他方法,但只允许特定的用户/角色使用,那么您可以按照类似的方式配置这些细粒度的设置:https://www.mkyong.com/spring-security/spring-security-custom-login-form-annotation-example/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38687344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档