Я не пробовал это с не тестовым кодом, но это метод, который я создал для входа пользователя в свои интеграционные тесты (после создания / сохранения соответствующих пользователей / ролей в моей тестовой настройке):
import org.codehaus.groovy.grails.plugins.springsecurity.GrailsDaoAuthenticationProvider
import org.springframework.security.providers.UsernamePasswordAuthenticationToken
import org.springframework.security.context.SecurityContextHolder
...
def logInAsUser(username, password) {
daoAuthenticationProvider.getUserCache().removeUserFromCache(username)
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password)
SecurityContextHolder.context.authentication = daoAuthenticationProvider.authenticate(token)
}
Я создаю и внедряю токен аутентификации в контексте безопасности. Возможно, вам нужно сделать еще немного, чтобы войти в систему и пройти проверку безопасности, но это будет началом всего, что это есть.
Мне нужно сделать то же самое, что и вы, через неделю или две для моего текущего приложения, напишите, если вы полностью разберетесь, прежде чем я сделаю :).