Чтобы добавить аутентификацию в приложение Grails 3, добавьте его в build.gradle:
compile 'org.grails.plugins:spring-security-core:3.2.3'
Затем запустите
grails s2-quickstart com.myapp Operator Role
Это создаст 3 объекта домена, но ничего больше яможет найти.
объект домена оператора выглядит следующим образом:
package com.myapp
importgroovy.transform.EqualsAndHashCode
importgroovy.transform.ToString
importgrails.compiler.GrailsCompileStatic
@GrailsCompileStatic
@EqualsAndHashCode(includes='username')
@ToString(includes='username',includeNames=true,includePackage=false)
classOperatorimplementsSerializable{
privatestaticfinallongserialVersionUID=1
Stringusername
Stringpassword
booleanenabled=true
booleanaccountExpired
booleanaccountLocked
booleanpasswordExpired
Set<Role>getAuthorities(){
(OperatorRole.findAllByOperator(this)asList<OperatorRole>)*.roleasSet<Role>
}
staticconstraints={
passwordnullable:false,blank:false,password:true
usernamenullable:false,blank:false,unique:true
}
staticmapping={
passwordcolumn:'
`password`'
}
}
Проблема в том, что перед шифрованием пароля отсутствует вставка перед вставкой.В Grails 2.5 он помещался в объект домена Operator:
def beforeInsert() {
encodePassword()
}
Поэтому я ожидал, что пароль будет вставлен в виде обычного текста, но, похоже, это не так.Кажется, что он зашифрован, по крайней мере, для операторов, созданных с помощью начальной загрузки. Вопрос в том, где и как?