Grails for Acegi 플러그인을 사용하여 새 사용자를 등록하면 "기본 역할을 찾을 수없는 기본 역할"을 제공하는 이유는 무엇입니까? 오류

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

문제

아마도 다른 방법으로, teh acegi 플러그인을 사용하여 Grails에서 새로 등록 된 사용자에 대한 기본 보안 역할을 어떻게 설정합니까?

나는 Acegi/Grails 튜토리얼을 따랐다 여기 그리고 컨트롤러 주석을 사용하고 있습니다. 아직 아무것도 확보하지는 못했습니다.

Web_user라는 두 번째 역할을 추가했으며 그 역할에 사용자를 성공적으로 추가했습니다.

그러나 다른 새 사용자에서 레지스터 컨트롤러를 사용하면 Grails의 오류 메시지가 표시됩니다. "Default role not found".

적절한 생성 메소드에서 Null 역할 목록을 처리하거나 기본 역할 이름을 등록보기에서 숨겨진 필드로 게시 하여이 방법을 대략적으로 코딩 할 수있는 방법을 알 수 있었지만 그릴을 느낍니다.

사용자 도메인 클래스 자체에서 또는 사용자와 역할 테이블 간의 데이터베이스 관계에서 이것을 정의 할 수 있어야한다고 생각합니다.

기본 역할을 정의하기위한 의도는 무엇 이며이 메시지를받는 이유는 무엇입니까?

아, 그리고 당신은 어떻게 acegi를 발음합니까?

도움이 되었습니까?

해결책

이것은 문서 문제입니다. 레지스터 페이지를 사용하면 공개 가입 페이지가 될 것으로 예상되므로 역할을 선택할 수 없습니다. 사용자를 만들 때 적어도 하나의 역할이 필요 하므로이 워크 플로에 대해 구성된 '기본'역할이있을 것으로 예상됩니다.

'defaultrole'속성으로 SecurityConfig.groovy에서 기본 역할을 설정할 수 있습니다. 기본적으로 그것은 'role_user'이지만 원하는대로 일 수 있습니다. 사용자가 등록하기 전에이 값의 권한 인스턴스가 있어야합니다.

발음은 FAQ에 있습니다. http://www.acegisecurity.org/faq.html

다른 팁

나는 대답을 찾았다. 일반적으로 성배의 경우 role_user라는 기본 역할이 있습니다. 새 사용자를 등록하면 해당 이름으로 역할을 찾아서 찾을 수있는 역할을 찾습니다. 사용자에게 할당합니다.

"기본 역할을 찾지 못한"메시지는 읽는 방법에 대해 모호합니다.

먼저 "새로 등록 된 사용자가 할당되도록 어딘가에 기본 역할을 정의해야한다"는 의미라고 생각했습니다.

그러나 나는 그것이 "일반적인 구성이 작동하도록 role_user라고 불리는 역할 테이블에서 데이터베이스 행을 만들어야한다"는 것을 의미한다고 생각합니다.

보안 기능의 성배 생성의 일부는 Database Bootstrap에 Role_admin과 Role_user를 추가하고 오류의 가능성을 가지고 수행하기 위해서는 단지 만약입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top