我想将Spring Security @PreAuthorize
注释应用于以下Spring Roo ITD 中定义的服务方法(不执行推送重构)方法):
privileged aspect CurriculumServiceImpl_Roo_Service {
declare @type: CurriculumServiceImpl: @Service;
declare @type: CurriculumServiceImpl: @Transactional;
public Curriculum CurriculumServiceImpl.updateCurriculum(Curriculum curriculum) {
return curriculumRepository.save(curriculum);
}
这可能吗?如果是这样的话?
答案 0 :(得分:1)
使用Spring Roo可以实现这一目标:See detailed comment here.
引用评论:
如果您想尝试并使用PermissionEvaluator,请按照下列步骤操作 (最好是在测试项目上)。
运行Roo命令“permissionEvaluator --package {要添加PermissionEvaluator的包}”(安全性必须是 首先安装)
Spring Roo将创建三个文件:ApplicationPermissionEvaluator,ApplicationPermissionEvaluator_Roo_PermissionEvaluator, 的applicationContext-安全permissionEvaluator.xml。
将userPermissionEvalutor = true添加到要保护的服务的@RooService注释中。
Spring Roo会为@PreAuthorize添加额外的标准,例如“或者hasPermission(#myDomanObject, 'MyService:deleteMyDomainObjectIsAllowed')“
- 醇>
添加/更新方法hasPermission(Authentication authentication,Object targetObject,Object permission)) ApplicationPermissionEvaluator
顺便说一下,在重构中执行推送不是我的应用程序的解决方案。 走Roo 并依赖Roo功能总是更好。