2014-06-20 139 views

回答

1

被拒绝的页面存在于spring安全插件的登录文件夹中。如果您使用的是spring security 1.x,那么它在您的应用程序视图/登录/拒绝中,如果您使用的是spring security 2.x,那么它在Spring安全插件中,然后复制spring security插件中的views/login文件夹并粘贴它在你的应用程序视图页面中。然后

UrlMappings文件

"403"(controller: 'error', action: 'denied') 

添加此并创建一个控制器ErrorController

class ErrorController { 
    def denied() { 
     render(view: '/login/denied') 
    } 
} 
+0

500已经在那里了。我向'UrlMappings.groovy'添加了403错误,但它不起作用。我仍然看到旧的丑陋的错误信息。 – Illep

+0

是的,我做到了。但仍然看到以前的错误消息 – Illep

3

中声明的Grails应用程序内的403页/ conf目录/ UrlMappings.groovy

"403"(view: '/403') 

接下来,创建一个grails-app/views/403.gsp视图,它将包含在您访问的内容拒绝

<%@ page contentType="text/html;charset=UTF-8" %> 
<html> 
<head> 
    <meta name="layout" content="main"> 
    <title>Access Denied</title> 
<link rel="stylesheet" 
    href="${resource(dir: 'css', file: 'stylesheet.css')}" type="text/css"> 
</head> 
<body> 
    <h2>Sorry, you're not authorized to view this page.</h2> 
</body> 
</html> 

页每次403错误是提高用户将看到的403.gsp 你可以做到这一点的内容从控制器如下:

//例从控制器内抛出403错误

def authenticateUser() { 
    if(!username.isValid(session)) { 
     return response.sendError(403)     
     } 
} 

希望它能帮助:)

+0

我应该添加哪个控制器代码? – Illep

+1

无论您认为哪个控制器都可能导致错误。例如,有一个updateWebsite控制器,只能由管理员访问,而不能由用户访问。所以如果用户试图访问它,它应该说拒绝权限。因此,在对用户凭证进行身份验证时,如果他们的角色不是admin,则可以添加此代码以告诉他们访问被拒绝。这只是一个例子。取决于你想达到的目标。 –

+0

在COntroller类中,我有一些允许用户访问的方法,一些允许管理员访问。如果用户试图访问这样的方法,我想显示403.gsp视图 – Illep