我在控制器中有一个使用以下配置的方法:
@RequestMapping(value = "/encore/{userName}/{token}", method = RequestMethod.GET)
@ResponseBody
@PreAuthorize("hasIpAddress('192.168.1.2/24')")
public EncoreAccount validateUserRequest(HttpServletRequest request,
@PathVariable(value = "userName") String userName,
@PathVariable(value = "token") String token) {
}
我在 webmvc-config.xml 中有这个
<security:global-method-security pre-post-annotations="enabled" />
但是当我运行它时,我得到以下异常:
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1004E:(pos 0): Method call: Method hasIpAddress(java.lang.String) cannot be found on org.springframework.security.access.expression.method.MethodSecurityExpressionRoot type
我知道 hasIpAddress() 在 org.springframework.security.web.access.expression.WebSecurityExpressionRoot 中。
你知道为什么它不查找 WebSecurityExpressionRoot 中的方法吗?
非常感谢,