Grace에서 Acegi/Spring Security 플러그인을 사용하여 웹 응용 프로그램을 작성 중이며 사용자 인스턴스의 변경 사항을 확인하는 데 문제가 있습니다. . Groovy/Grails로 약 3 주간 만 작업했기 때문에, 메일 링리스트와 튜토리얼에서 답변을 찾으려고 노력하고있어이 문제가 간단하다면 용서해주십시오.Acegi/Spring Security Grails 플러그인이 사용자 인스턴스에 대한 변경 사항을 보지 못했습니다.
사용자가 이메일 확인 토큰 또는 실명과 같은 추가 정보를 포함해야 할 때마다 사용자 도메인 클래스에 새로운 속성을 추가했습니다. 그 이유는 반대로 추천을 찾을 수 없기 때문입니다. 새로운 사용자를 만들면 모든 것이 잘된 것처럼 보이지만 사용자를 편집하면 사용자 목록에 변경 사항이 표시되지만 Acegi 태그 라이브러리 및 관련 기능에는 변경 사항이 표시되지 않습니다. 여기
는 UserController.update()에서 관련 조각입니다 :이 코드가 실행def person = User.get(params.id)
//...snip error checking...
//Update user attributes
person.username = params.email
person.email = params.email
person.userRealName = params.userRealName
//Attempt to save changes
if (person.save()) {
//If successful, redirect back to profile viewing page
redirect action: show, id: person.id
return
}
else {
//Otherwise, show errors and edit again
render view: 'edit', model: buildPersonModel(person)
return
}
후, 나는 항상 ID로 사용자 데이터를 얻는 경우에 변경 내용을 볼 수는 없지만 나는 이것은 Acegi 태그를 사용하는 경우 또는 기능.
loggedInUserInfo(field:'realName')
을하지만이 작업을 수행합니다 : 예를 들어,이 작동하지 않습니다
User.get(loggedInUserInfo(field:'id').toLong()).realName
새로운 정보 때로는 내가 로그 아웃 후 표시가 다시 있지만, 보통은 자주하지 않습니다 3 개 이상의 relogs 후에도 나타나지 않습니다. 또한, "flush : true"를 person.save()에 아무런 효과없이 추가하려고했습니다.
(주변 질문 : 그렇지 않으면 내가 그것을 정보를 추가하는 가장 좋은 방법은 무엇,이 같은 사용자 클래스와 바이올린을 켜는되는 것이 나쁜?) 더 조사 후
업데이트 : 그것을 정상적인 페이지에서 loggedInUserInfo()를 사용하는 것처럼 보이지만 제대로 작동하지만 레이아웃 내에서 사용하면 설명 된 동작을 나타냅니다. 어떤 이상한 캐싱 작업이 진행될 수 있습니까?
링크를 제공해 주셔서 감사합니다. 그러한 필터를 작성하는 방법의 예를 제공해 주시겠습니까? 나는 문제가있는 프로젝트에서 더 이상 일하지 않지만 다른 사람이 그것을 보면서 이익을 얻을 수 있다고 확신한다. –
확실한 것. grails 필터에 대한 가이드는 다음과 같습니다. http://www.grails.org/Filters하지만 짧은 버전은 필터 파일을 grails-app/conf 디렉토리에두면 작동합니다. 건배 – sinjax
+1 - 역할에 동일한 문제가 있었으며 JIRA의 해결 방법 필터가 문제를 해결했습니다. –