我正在Grails
使用spring-security-core:2.0-RC4
我正在尝试在我的@Secured表达式中进行一些自定义安全检查,如下所示:
import grails.plugin.springsecurity.annotation.Secured;
class AdminController {
def myCustomSecService;
@Secured("@myCustomSecService.customCheck()")
def index() {
render(view:"index")
}
}
这似乎根本不起作用。
我已经看到examples与@PreAuthorize
类似,但是(显然)需要我想避免使用的spring-security-acl
插件(除非我真的需要)。
奇怪的是,spring-security-core
插件包含jar
同时包含@PreAuthorize
和@PostAuthorize
注释。
我该怎么做?
答案 0 :(得分:0)
经过多次挖掘后,我想我找到了解决方案。
我看到某个地方,如果我在使用Spring时必须覆盖类和方法,那我可能做错了。
我需要做的就是将@Component添加到我的服务
这就是我最终做的事情:
我的控制器:
import grails.plugin.springsecurity.annotation.Secured;
class AdminController {
def myCustomSecService;
@Secured("@myCustomSecService.customCheck()")
def index() {
render(view:"index")
}
}
和我的服务:
import org.springframework.stereotype.Component;
@Component("myCustomSecService")
class MyCustomSecService {
def customCheck() {
/*do checks here*/
return true;
}
}