【发布时间】:2011-02-26 14:04:28
【问题描述】:
我有一个应用程序,我在其中使用弹簧安全性和 grails 旋律。我打算在生产环境中运行 grails melody,但不希望访问者可以访问它。我应该如何做到这一点?我尝试在 grails 中创建一个过滤器(仅显示我正在尝试的示例,而不是实际代码)-
def filters = {
allURIs(uri:'/**') {
before = {
//...
if(request.forwardURI.indexOf("admin") != -1 ||
request.forwardURI.indexOf("monitoring") != -1) {
response.sendError 404
return false
}
}
}
}
但这不起作用,因为“监控”请求没有命中此过滤器。我什至不希望用户知道这样的 URL 存在,所以我想在过滤器中检查如果“监控”是 URL,我会显示 404 错误页面。这也是我不想用 spring security 保护这个 URL 的原因,因为它会显示“访问被拒绝”页面。
基本上我希望 URL 存在,但它们应该对用户不可见。我希望对这些特殊 URL 的特定 IP 地址开放访问。
另一方面,是否可以编写一个 grails 过滤器,在 spring 安全过滤器被命中之前“行动”?在将请求转发给 Spring Security 之前,我希望能够进行一些过滤。像上面那样编写一个 grails 过滤器没有帮助。如果我访问受保护的资源并且没有调用此过滤器,则 Spring 安全过滤器会首先被命中。
谢谢
【问题讨论】: