自定义 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 自定义登录表单未呈现自定义用户模型中的所有字段
UINavigationController 的自定义动画推送未正确呈现导航栏