java - 如何测试安全的端点/休息控制器?Java,带有@Secured
问题描述
我有一个 REST 控制器,它是安全的,需要测试:
@RestController
@RequestMapping("/account")
public class ViewerEditorEndpoint {
private final ViewerEditorService viewerEditorService;
public ViewerEditorEndpoint(ViewerEditorService viewerEditorService) {
this.viewerEditorService = viewerEditorService;
}
@PutMapping("/{username}")
@Secured({"ROLE_VOLUNTEER", "ROLE_INDIVIDUAL", "ROLE_COMPANY"})
UserDTO editAccountInfo(@PathVariable String username, @RequestBody UserDTO userDTO) {
Optional<UserDTO> oUser= viewerEditorService.editAccountInfo(username, userDTO);
return oUser.orElse(null);
}
@GetMapping("/{username}")
//@Secured({"ROLE_VOLUNTEER", "ROLE_INDIVIDUAL", "ROLE_COMPANY"})
UserDTO getAccountInfo(@PathVariable String username) {
if (username.equals(principal.getName())) {
return viewerEditorService.getAccountInfo(username).orElse(null);
}
return null;
}
}
我用@WithMockUser、@WithUserDetails 尝试过,但没有一个真正有效。我看到了很多关于 Mockmvc 的例子,但我真的不明白如何实现它。我会很感激一些小费(:
解决方案
推荐阅读
- wordpress - WordPress.org 添加低级代码/添加外部 API?
- c++ - C++:constexpr 对变量暗示隐式 const 不适用于引用
- python - 关系字段Many2one和One2many中的AttributeError
- google-apps-script - 在谷歌应用脚本中的特定行之间添加行
- django - Django,模板。无法在 if 语句中传递变量
- javascript - 我在哪里为我的网站上传套接字 io 服务器 javascript 文件?
- ssh - 将 SSH 端口 22 更改为 800
- python - Series.str.split 返回 NaN 和意外的数据类型
- wordpress - 更改某个 WooCommerce 产品(ID)的“商店基地”标签
- javascript - Selenium IDE Chrome 替代 echo || javascript{警报('文本')}