На Grails 2.0.3, я установил Spring Security Сердечник и создал пользователь, UserRole и роль объектов в соответствии с учебником: http://blog.springsource.org/2010/08/11/simplified-spring-security-with-grails/Grails-не может войти в системе с пружинной безопасностью при использовании нескольких баз данных
Все шло хорошо, пока Я решил добавить второй источник данных при подготовке к доступу к объектам из другой базы данных. DataSource.groovy выглядит следующим образом:
test {
dataSource_product {
dbCreate = "update"
url = "jdbc:mysql://localhost/products"
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "blah"
password = "blah"
loggingSql = true
dialect = 'org.hibernate.dialect.MySQL5InnoDBDialect'
}
dataSource {
dbCreate = "update"
url = "jdbc:mysql://localhost/core"
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "blah"
password = "blah"
loggingSql = true
dialect = 'org.hibernate.dialect.MySQL5InnoDBDialect'
}
}
Теперь я не могу войти в систему - даже если все, что я сделал, это добавить datasource_product. Если я прокомментирую это и воссоздаю пользователей (в Bootstrap.groovy), то я могу снова войти в систему. Bootstrap.groovy содержит:
def init =
{ servletContext ->
// Add in roles
Role.withTransaction {
def adminRole = Role.findByAuthority (Role.ROLE_ADMIN) ?: new Role (authority: Role.ROLE_ADMIN).save (failOnError: true)
def adminUser = User.findByUsername ('admin') ?: new User (
username: 'blah',
password: 'blah',
enabled: true).save (failOnError: true)
if (!adminUser.authorities.contains (adminRole)) UserRole.create (adminUser, adminRole)
}
Любые идеи?