【发布时间】:2012-11-04 15:27:55
【问题描述】:
我有以下控制器:
@Controller
@RequestMapping("/api")
public class APIProvider {
@Secured(value = {"isAuthenticated()"})
@RequestMapping(value="/secure/{app}/{query}", method=RequestMethod.GET)
@ResponseBody
public ResponseEntity<String> getList(HttpServletRequest request,
@PathVariable("app") String app,
@PathVariable("query") String query) {
//....DO SMTH
}
}
当尝试访问所需的 URL 时,我得到“找不到页面”。
删除@Secured 注释,解决了这个问题。所以请求映射是正确的。
同样对于@Secured 注释,我在security-config.xml 中添加了以下指令:
<security:global-method-security secured-annotations="enabled"/>
谁能帮我让@Secured + @RequestMapping 一起工作?
【问题讨论】:
-
我的猜测是 isAuthenticated() 无法重新使用。我认为你应该选择@Secured(value="ROLE_AUTHENTICATED")
-
仍然得到“未找到页面”。我应该在 security-config.xml 中定义角色 ROLE_AUTHENTICATED 吗?还是spring自己预定义的?
-
我认为这取决于您如何配置您的 authenticationProvider,因为我们使用 sso,所以我们的默认角色是 ROLE_AUTHENTICATED:
标签: java spring-mvc spring-security