我的配置中有一个拦截器,我想禁止访问其他用户的资源。在 WebMvcConfig(实现 WebMvcConfigurer)中,我有:
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new FolderInterceptor(userService, folderService))
.addPathPatterns(Mapping.FOLDER_MAPPING + "/{id}",
Mapping.UPDATE_FOLDER_MAPPING + "/{id}",
Mapping.DELETE_FOLDER_MAPPING + "/{id}",
Mapping.DOWNLOAD_FOLDER_MAPPING + "/{id}");
}
在我的 FolderInterceptor 中,我有一个 preHandle 方法获取访问的文件夹并检查其所有者:
Map pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
Long id = Long.valueOf((String) pathVariables.get("id"));
User user = userService.getLoggedAccount();
if (folderService.existsById(id)) {
Folder folder = folderService.findById(id);
if (folder.getOwner().getId().equals(user.getId())) {
return true;
}
else {
response.sendError(403, "Unauthorized");
return false;
}
}
else {
response.sendError(404, "Folder does not exist");
return false;
}
如果我打印文件夹对象,我在该行有同样的错误。
org.hibernate.LazyInitializationException: could not initialize proxy.
谢谢您的帮助。
www说
UYOU
繁花不似锦
随时随地看视频慕课网APP
相关分类