2017-11-03 4 views
0

Ich befolge dieses Tutorial für eine Grails-Forum-Anwendung: http://grails.asia/grails-forum-application.Zugriff auf die Anwendung in Grails verweigert

Ich habe genau das getan, was es hat, außer dass ich feder-security-core: 2.0.0 plugin statt feder-security-core: 1.2.7.3 in dem im Tutorial erwähnten Tutorial verwende (Link gegeben über).

Wenn ich versuche, um sich einzuloggen: Ich habe diesen Fehler:

"Sorry, you're not authorized to view this page"

Ich bin nicht sicher, was der Fehler genau ist wie die Konsole keine Spur nicht geben.

Ich benutze GGTS Groovy/Grails Tool Suite Version: 3.6.4.RELEASE auf Ubuntu Linux 16.04.

Der Code ich verwende den gleichen Code in den obigen Link und auf Github aufgeführt ist (https://github.com/grailsasia/grails-ex-forum)

Was mache ich falsch? Die Anwendung verweigert mir den Zugriff, obwohl ich einen Benutzernamen und ein Passwort verwende, die die Anwendung selbst generiert.

hier ist der Code für Bootstrap.groovy, die ich Daten zu laden, bin mit (wieder - gerade aus dem Tutorial selbst):

class BootStrap { 
    def random = new Random(); 
    def words = ("time,person,year,way,day,thing,man,world,life,hand,part,child,eye,woman,place,work,week,case,point," + 
       "government,company,number,group,problem,fact,be,have,do,say,get,make,go,know,take,see,come,think,look," + 
       "want,give,use,find,tell,ask,work,seem,feel,try,leave,call,good,new,first,last,long,great,little,own," + 
       "other,old,right,big,high,different,small,large,next,early,young,important,few,public,bad,same,able,to,of," + 
       "in,for,on,with,at,by,from,up,about,into,over,after,beneath,under,above,the,and,a,that,I,it,not,he,as,you," + 
       "this,but,his,they,her,she,or,an,will,my,one,all,would,there,their").split(",") 

    def init = { servletContext -> 
     if (SecUser.count() == 0) { // no user in db, lets create some 
      def defaultRole = new SecRole(authority: 'ROLE_USER').save() 
      // create 100 users 
      (1..100).each { userNo -> 
       String username = "user${userNo}" 
       def user = new SecUser(username:username, password: 'secret', enabled: true).save() 
       // all users will have default role 
       new SecUserSecRole(secUser:user, secRole: defaultRole).save() 
      } 
     } 

     if (Section.count() == 0) { // create data if no forum data found 
      // get all users 
      def users = SecUser.list() 
      // create 3 sections 
      ('A'..'C').each { sectionLetter -> 
       def sectionTitle = "Section ${sectionLetter}" 
       def section = new Section(title: sectionTitle).save() 
       // create 4 topics per section 
       (1..4).each { topicNumber -> 
        def topicTitle = "Topic ${sectionLetter}-${topicNumber}" 
        def topicDescription = "Description of ${topicTitle}" 
        def topic = new Topic(section: section, title: topicTitle, description: topicDescription).save() 
        // create 10-20 threads each topic 
        def numberOfThreads = random.nextInt(11)+10 
        (1..numberOfThreads).each { threadNo -> 
         def opener = users[random.nextInt(100)] 
         def subject = "Subject ${sectionLetter}-${topicNumber}-${threadNo} " 
         def thread = new DiscussionThread(topic:topic, subject:subject, opener:opener).save() 
         new Comment(thread:thread, commentBy:opener, body:generateRandomComment()).save() 
         // create 10-35 replies per thread 
         def numberOfReplies = random.nextInt(26)+10 
         numberOfReplies.times { 
          def commentBy = users[random.nextInt(100)] 
          new Comment(thread:thread, commentBy:commentBy, body:generateRandomComment()).save() 
         } 
        } 
       } 
      } 
     } 
    } 

    private String generateRandomComment() { 
     def numberOfWords = random.nextInt(50) + 15 
     StringBuilder sb = new StringBuilder() 
     numberOfWords.times { 
      def randomWord = words[random.nextInt(words.length)] 
      sb.append("${randomWord} ") 
     } 
     return sb.toString() 
    } 

    def destroy = { 
    } 
} 

ich das Beste mache ich, um herauszufinden, was los ist, , aber ich habe keine Fehlermeldung, was das Problem ist und das Tutorial hilft mir nicht, herauszufinden, warum.

UPDATE !!

Nach dem Blick auf die Antworten, die ich erhielt, ging ich zurück und schaute wieder auf die Tutorials, in den Links geschrieben und festgestellt, dass meine Probleme tatsächlich mit der Liste der zulässigen Rollen und Zugriffe verbunden sind.

Hier ist die Liste der erlaubten Zugriffe/Rollen/Ressourcen Ich muss spielen und verstehen mehr:

// Added by the Spring Security Core plugin: 
grails.plugin.springsecurity.userLookup.userDomainClassName = 'furqanforum.SecUser' 
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'furqanforum.SecUserSecRole' 
grails.plugin.springsecurity.authority.className = 'furqanforum.SecRole' 
grails.plugin.springsecurity.controllerAnnotations.staticRules = [ 
    '/':    ['permitAll'], 
    '/forum/**':  ['permitAll'], 
    '/index':   ['permitAll'], 
    '/index.gsp':  ['permitAll'], 
    '/assets/**':  ['permitAll'], 
    '/**/js/**':  ['permitAll'], 
    '/**/css/**':  ['permitAll'], 
    '/**/images/**': ['permitAll'], 
    '/**/favicon.ico': ['permitAll'], 
    '/login/**':  ['permitAll'], 
    '/logout/**':  ['permitAll'] 
] 

bedankt sich bei allen, die mir geholfen, mich positiv beigetragen zu helfen und eine neue Fertigkeit zu gewinnen!

Ich lese mehr über Federsicherheit und Tweaking und ich lerne. Aber basierend auf der überprüften Antwort und den Antworten und Vorschlägen, löste dies mein Problem,

+1

Siehe ... das ist genau das, was ich meine. Warum wurde dieser Beitrag abgelehnt? Meistens erklären, warum es abgelehnt wird. Willkürliche Aktionen wie diese fördern weder Wachstum, noch fördern sie die Ermutigung, an solche Orte zu kommen, um Hilfe zu bekommen. – ironmantis7x

+0

Wenn es hilft, dass ich dich vielleicht upvoted habe, unsicher, warum es so viele Downvotes gibt, vielleicht weil der Winkel der Frage nicht einfach zu folgen ist - und die Antwort relativ einfach ist - ist das Problem hier, dass du mit Sicherheit im Frühling und im tiefen Ende bist Sie müssen vielleicht etwas über Grails Spring Security lesen, bevor Sie Tutorial - Sie können Spring Security Debug Logs aktivieren, um herauszufinden, was es tut - und um alles, was auf die statischen Regeln erstellt zu reduzieren und fügen Sie einfach Ihre Controller nach ControllerName/** permitAlle Regel, um Zugang zu geben - das ist msg ist Frühling Sicherheitsblockierung Seite – Vahid

+0

Wenn Sie das Tutorial mit der Version von Spring-Sicherheit, für die es geschrieben wurde, ist es funktioniert wie erwartet? – doelleri

Antwort

1

Sie können nicht einfach von Version 1.x zu 2.x ohne Konfigurationsänderungen ändern. Lesen Sie die What's New Informationen und lesen Sie genauer die Änderungen here.

Bisher erlaubte das Plugin den Zugriff, es sei denn, es erforderte eine Rolle, die der Benutzer nicht hatte, aber jetzt verweigert das Plugin standardmäßig allen Zugriff, es sei denn, es ist explizit erlaubt. Alte Tutorials, die die 1.x-Versionen des Plugins verwenden, wären sich dessen nicht bewusst.

+0

Sie alle haben wesentlich dazu beigetragen, der Lösung näher zu kommen. In der Tat musste ich mehr darüber lesen, wie man das Plugin benutzt (ich muss es noch lesen). Ich werde meine Frage mit dem, was ich gefunden habe, basierend auf der geprüften Lösung aktualisieren. Danke an alle. – ironmantis7x

+0

ihr habt mir wirklich sehr geholfen. Ich habe etwas mehr zu lesen, aber bis jetzt funktioniert meine Anwendung. – ironmantis7x

Verwandte Themen