Perché la registrazione di un nuovo utente utilizzando il plugin per Acegi graal danno un “ruolo predefinito non trovato.” Errore

StackOverflow https://stackoverflow.com/questions/2049789

Domanda

Forse mettere un altro modo, come faccio a impostare un ruolo di protezione predefinito per gli utenti di nuova immatricolazione in Grails utilizzando teh Acegi plug-in?

Ho seguito l'Acegi / graal qui e sto utilizzando le annotazioni del controller -. anche se non ho ancora ottenuto nulla

Ho aggiunto un secondo ruolo chiamato WEB_USER e hanno aggiunto con successo di un utente a quel ruolo.

Quando uso il controller registro fro un nuovo utente, tuttavia, ottengo un messaggio di errore da Grails dicendo "Default role not found".

ho potuto vedere come avrei potuto codificare il mio modo più o meno di questo o la gestione di un elenco dei ruoli null nel metodo create appropriata, o anche la pubblicazione di un nome di ruolo predefinito indietro come un campo nascosto dalla vista di registrazione, ma si sentono un -Grails.

Credo che dovrebbe essere in grado di definire questo sia nella classe di dominio dell'utente stesso o in qualche modo nel rapporto nel database tra le tabelle utente e di ruolo.

Qual è il mezzo destinati a definire un ruolo predefinito, e perché mi appare questo messaggio.

Oh, e come si pronuncia Acegi?

È stato utile?

Soluzione

Questa è una questione di documentazione. La pagina di registrazione non consente di selezionare i ruoli in quanto ci si aspetta che sarà una pagina di registrazione pubblica. Almeno un ruolo è necessaria la creazione di un utente in modo che si aspetta che ci sia un ruolo di 'default' configurato per questo flusso di lavoro.

È possibile impostare il ruolo predefinito in SecurityConfig.groovy con l'attributo 'DefaultRole'. Di default è 'ROLE_USER' ma può essere quello che vuoi. Ci deve essere un'istanza all'Autorità questo valore prima che gli utenti possono registrarsi.

La pronuncia è nelle FAQ - http://www.acegisecurity.org/faq.html

Altri suggerimenti

ho trovato la risposta. Tipicamente di Grails, c'è un ruolo predefinito chiamato ROLE_USER. Quando si registra un nuovo utente si guarda per un ruolo con quel nome e se ne trova uno che assegna all'utente.

Il messaggio "ruolo predefinito non trovato" è ambigua nel modo in cui si può leggere.

ho pensato che significava "è necessario definire un ruolo predefinito in qualche modo che gli utenti di nuova immatricolazione sono assegnati a esso".

Tuttavia penso che in realtà significa "è necessario creare la riga di database nella tabella ruoli che si chiama ROLE_USER così che funziona la configurazione normale".

Mi colpisce che parte della generazione graal delle caratteristiche di sicurezza dovrebbero solo per aggiungere un ROLE_ADMIN e ROLE_USER al bootstrap base di dati in qualche modo e hanno fatto con la possibilità dell'errore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top