自定义 denied.gsp 样式未呈现

Posted

技术标签:

【中文标题】自定义 denied.gsp 样式未呈现【英文标题】:Custom denied.gsp styles not rendering 【发布时间】:2014-03-02 03:52:23 【问题描述】:

我正在使用 spring-security-core 插件,并在 /views/login/denied.gsp 下创建了一个自定义 denied.gsp 页面。如果我直接通过 /login/denied 进入页面,我可以看到布局已应用。但是,如果我尝试访问受限页面并被路由到 denied.gsp,它只会呈现准确的 html 而不会处理布局。

<html><head>
        <title>Denied</title>
        <meta name="layout" content="main">
    </head>
    <body>
        <section class="breadcrumb p07">
            <p><a href="/">Home</a> Denied</p>
        </section>
        <section class="content">
            <p>Sorry, you're not authorized to view this page.</p>
        </section>

</body></html>

我将这些设置为 false,因此默认情况下不会锁定所有内容:

grails.plugin.springsecurity.rejectIfNoRule = false
grails.plugin.springsecurity.fii.rejectPublicInvocations = false

管理员控制器:

@Secured(['ROLE_ADMIN'])
class AdminController 

    def index()  

    

例如,我以 ROLE_USER 身份登录,然后转到 /admin,它正确地拒绝了我。然而,它在页面上没有样式。

没有关于css、js等的额外规则

我无法弄清楚为什么在这种情况下不应用样式。有什么想法吗?

【问题讨论】:

@JoshuaMoore 是的,我是 您是否已验证可以不受限制地访问 CSS 和其他与样式相关的元素?如果您发布了请求映射,那将会很有帮助。考虑到默认情况下所有内容都已完全锁定。 @JoshuaMoore 我已经更新了我的问题 我假设您没有弄乱配置中的 adh.errorPage 属性? @adavis 我遇到了同样的问题。似乎它是错误的。这里还提供了一些解决方法。 jira.grails.org/browse/GPSPRINGSECURITYCORE-253 【参考方案1】:

先熟悉一下这个https://github.com/grails-plugins/grails-spring-security-core/issues/177

作为一种解决方法,我建议您执行以下提到的步骤。

在您的UrlMappings.groovy 中进行修改:

"500"(controller: "error", action: "denied")

在您的 Config.groovy 文件中覆盖 errorPage 属性

grails.plugin.springsecurity.adh.errorPage = null

并在您的控制器中添加操作:

def denied() 
    render(view: '/login/denied')

这对我有用。

【讨论】:

以上是关于自定义 denied.gsp 样式未呈现的主要内容,如果未能解决你的问题,请参考以下文章

Django allauth 自定义登录表单未呈现自定义用户模型中的所有字段

自定义按钮未正确呈现

SwiftUI 自定义选取器标签未呈现

UINavigationController 的自定义动画推送未正确呈现导航栏

Laravel Yajra 数据表呈现自定义 html / 列样式

自定义小部件中的 dojo 数据网格未呈现