构建一个grails(2.2.0)站点并且遇到奇怪的问题,其中链接(在标题中)仅在用户登录时起作用。这些特定链接是应该适合所有人的一般链接。
当我点击链接时,它会转到一个空白页面,上面写着"无效"
我猜测必须有办法启用这些链接或将其公开,以免需要登录....
任何帮助都将不胜感激。
来自main.gsp的片段
<div class="collapse navbar-collapse" id="navbar-collapse-main">
<ul class="nav navbar-nav navbar-right text-center">
<li><a href="${createLink(controller: 'main', action: 'contact')}">Contact</a></li>
<li><a href="${createLink(controller: 'main', action: 'calendar')}">Calendar</a></li>
来自MainController的片段
class MainController {
// show events up to a two weeks after they closed
def Calendar() {
// TODO: this action is not working without authorization
def events = Event.findAllByBidEndDateTimeGreaterThan(new Date() - 14);
render(view: 'calendar', model: [events: events])
}
def contact() {
render(view: 'contact')
}
}
下面的interceptUrlMap:
grails.plugins.springsecurity.interceptUrlMap = [
'/dashboard/**': ['IS_AUTHENTICATED_FULLY'],
'/home/**' : ['permitAll'],
'/**' : ["permitAll"],
'/' : ['permitAll'],
'/index' : ['permitAll'],
'/index.gsp' : ['permitAll'],
'/main.gsp' : ['permitAll'],
'/auth.gsp' : ['permitAll'],
'/contact' : ['permitAll'],
'/calendar' : ['permitAll'],
'/assets/**' : ['permitAll'],
'/**/js/**' : ['permitAll'],
'/**/css/**' : ['permitAll'],
'/**/images/**' : ['permitAll'],
'/**/fonts/**' : ['permitAll'],
'/**/favicon.ico' : ['permitAll']
答案 0 :(得分:0)
需要在Config.groovy
中添加这样的内容grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/' : ['permitAll'],
'/index' : ['permitAll'],
'/index.gsp' : ['permitAll'],
'/about.gsp' : ['permitAll'],
'/about' : ['permitAll'],
'/assets/**' : ['permitAll'],
'/**/js/**' : ['permitAll'],
'/**/css/**' : ['permitAll'],
'/**/images/**' : ['permitAll'],
'/**/fonts/**' : ['permitAll'],
'/**/favicon.ico' : ['permitAll']
]
package com.grails
import org.springframework.security.access.annotation.Secured
@Secured(['permitAll'])
class PersonController {
}