我对Spring安全性有点新,需要帮助我可以禁用http方法,例如OPTIONS,PUT或DELETE。
答案 0 :(得分:1)
Spring拦截器url提供了一个方法参数,向下尺寸是它只允许一个方法指定 您可以通过为同一模式指定几个interceptor-url项来克服这个问题
<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可能有所帮助。
答案 1 :(得分:0)
为什么不只有一个只允许GET的控制器方法?任何其他HTTP方法都将被自动拒绝。
@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/