2012-04-22 2 views
1

Во время разработки я нахожу, что мне часто приходится перезапускать мое приложение, что, в свою очередь, приводит к дополнительному шагу входа в систему вручную.Войти автоматически в grails в bootstrap с пружинным сердечником безопасности

Я думал, что я мог бы добавить springSercurityService.reauthenticate вызова метода («MyUser») в начальной загрузки, однако я не sucessfull

Делать то же самое в контроллере после запуска приложения прекрасно работает так что его просто в бутстрапе, что он не работает. Я отлаживал код без видимых ошибок.

+0

Ответ Теда Налейда, вероятно, лучший выбор. Аутентификация хранится в сеансе, и в BootStrap нет сеанса или запроса, поэтому для принудительной аутентификации нет смысла. –

ответ

2

Я ударил тот же вопрос, и как я решил это использовать букмарклет (или пользовательский браузер «поисковая система»), что делает его очень легко войти в систему. При включенной глубокие ссылки, это делает его очень легко продолжить работу на той же странице. После перезагрузки сервера просто обновите страницу, и она перенаправит вас на страницу входа. Просто активируйте букмарклет (или «поисковую систему»), и он войдет в систему и перенаправит вас на страницу, над которой вы работали.

У меня есть подробный blog post, который показывает, как получить эту настройку.

+0

Спасибо за это Ted Я закончил тем, что создал простой контроллер, который вызовет springsecurityService.reauthenticate(), чтобы убедиться, что среда была dev Придется это сделать так как у меня есть собственный поставщик аутентификации, для которого требуется аппаратный ключ для процесса входа в систему. Однако ваше решение является приятным и достаточно общим, чтобы быть предпочтительным в большинстве случаев. – Iman

+0

привет Иман, не могли бы вы поделиться своим кодом контроллера или подробно его детализировать? Я также хочу сделать то же самое, но застрял. – gtiwari333

0

Если вам нужно просто войти в режим разработки, вы можете настроить свойство interceptUrlMap. Это свойство позволит вам настроить режим разработки таким образом, чтобы вы не просили войти в систему.

import grails.plugins.springsecurity.SecurityConfigType 

grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap 

environments { 
    development { 
     grails.plugins.springsecurity.interceptUrlMap = [ 
      '/**':    ['IS_AUTHENTICATED_ANONYMOUSLY'] 
     ] 
    } 

} 
+0

Мне действительно нужно было бы выполнить логин, чтобы я мог получить информацию о пользователе. В противном случае мое приложение не будет работать должным образом. Так что все должно работать, как если бы я сделал ручной вход – Iman

0

Другой вариант - добавить фильтр сервлета, который будет регистрировать пользователя по умолчанию, если среда является разработкой.

Смежные вопросы