Grails请求Map自定义错误

时间:2013-04-13 04:40:23

标签: spring grails

我使用Grails完成了一个使用Spring Security的请求映射的websoftware。 我出于安全原因使用它们,因此用户无法访问管理区域,但它也用于我们的业务模型。我们有两个不同的用户角色。一个是高级,一个是高级加,而PREMIUM_PLUS>溢价。 高级用户可以访问比高级用户更多的页面。如果高级用户想要访问只能由高级用户调用的页面,则会出现“无法访问”这样的错误,但我想要一个自定义消息,例如“立即升级到高级版本”。

我可以轻松编辑所有请求映射错误的模板,但也有一些限制页面,没有人应该看到“无访问”这样的消息是完美的。

是否有可能使用两个不同的错误页面执行此操作? 谢谢。

1 个答案:

答案 0 :(得分:1)

LoginController的动作denied显示denied.gsp。您可以自定义控制器操作以检查是否需要显示升级页面或拒绝页面。

class LoginController  {
    def denied() {
        if (springSecurityService.isLoggedIn() &&
        authenticationTrustResolver.isRememberMe(SCH.context?.authentication)) {
            // have cookie but the page is guarded with IS_AUTHENTICATED_FULLY
            redirect action: 'full', params: params
        } else {
            //implement a method checking whatever you need to define that will display the upgrade
            if(mustShowUpgrade()) {
                render view: 'upgrade'
            }
        }
    }
}