2015-10-15 40 views
0

構建Grails(2.2.0)站點並出現鏈接(標題中)僅在用戶登錄時才起作用的奇怪問題。這些特定鏈接是適用於所有人的一般鏈接。Grails鏈接只在登錄時才起作用

當我點擊鏈接(S)後帶我到一個空白頁,上面寫着「notvalid」

我猜必須有一種方法,使這些鏈接,或者讓他們公開所以不要求登錄....

任何幫助,將不勝感激。

片段從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

你將需要提供更多的信息,這個問題可以回答。這些鏈接之一的示例如何?如何在涉及安全性時包含URL映射? –

+0

@JoshuaMoore - 感謝您的建議,我剛剛添加了上面的編輯,希望能給出一個更好的想法。 – Aaron

回答

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 { 

} 
+0

這就是我的想法,但仍然顯示這些鏈接無效。 也許我錯過了那個列表中的東西? 我已經將它包含在上面,以便您可以看到我迄今列出的內容。 – Aaron

+0

你可以嘗試給鏈接添加@Secured(['permitAll'])註釋嗎? – Neoryder

+0

嗯,加入像你說的,但它給「Config.groovy中:136:無法解析類保護,無法找到類註釋」 – Aaron

相關問題