audit-logging
플러그인을 내 응용 프로그램에 설치했습니다. Grails 버전은 2.1.1
이고 플러그인 버전은 1.0.1
입니다. 내 Config.groovy
클래스에서audit-logging plugin을 사용하여 grails에 두 개의 레코드가 삽입되었습니다.
,이
auditLog {
verbose = true // verbosely log all changed values to db
logIds = true // log db-ids of associated objects.
// Note: if you change next 2 properties, you must update your database schema!
tablename = 'audit_logs' // table name for audit logs.
transactional = false
actorClosure = { request, session ->
org.apache.shiro.SecurityUtils.getSubject()?.getPrincipal()
}
을 추가 한 내 도메인 클래스에 내가 추가 할 때이
class Survey {
static auditable = true
static final int NO_RUNNING_SURVERY = 0
static final int RUNNING_SURVERY = 1
static final int CALL_NO_Record_SURVEY = 0
static final int CALL_Record_SURVEY = 1
static final int REALTIME_SURVEY = 0
static final int HISTORICAL_SURVEY = 1
static final int STANDARD_SURVERY = 2
String name
String description
int status
}
, 삭제 및 몇 가지 일을 업데이트 추가했습니다. 내 audit_logs
테이블에 한 번의 작업에 대해 이중 레코드가 삽입되었습니다. 내 컨트롤러 클래스
def stopSurvey(Long id) {
def survey = Survey.findById(params['stop'])
survey.status = Survey.NO_RUNNING_SURVERY
redirect(action: "list")
}
에서 상태 값을 변경하는 경우 는 통화 당 두 개의 레코드를 삽입합니다.
나는'actorClosure' (shiro를 사용하지 않았다.)없이 같은 것을 테스트했고 나는이 동작을 보지 못했다. Shiro를 사용하여 문제를 복제하는 github에서 샘플 앱을 공유 할 수 있습니까? 컨트롤러에 사용자 지정 식별자를 사용했는데 어디서나 매핑 된 도메인 클래스에는 표시되지 않습니다. – dmahapatro