2013-12-15 3 views
0

Я пытаюсь интегрировать весеннюю безопасность в одном из моих приложений grails. Как указано в руководстве по яровой безопасности, я установил плагин, используя следующий кодОшибка при использовании плагина весной-безопасности в графе

BuildConfig.groovy: Я добавил следующий код

repositories { 
mavenRepo 'http://repo.spring.io/milestone' 
} 

plugins { 
compile ':spring-security-core:2.0-RC2' 
} 

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

Далее я создал классы пользователя и роли. (Примечание: я назвал классы как Личность и Власть соответственно).

После этого я создал SecureController и не добавил аннотации доступа к безопасности, но до сих пор я не могу получить доступ к защищенному контроллеру. Управление напрямую перенаправляется на контроллер входа в систему

Вопрос 1: Возможно ли, что после использования весеннего плагина безопасности каждая страница нуждается в аутентификации. Есть ли способ доступа к странице без входа в систему

Далее я добавил примечание @Secured к SecureController. Аннотирование @Secured не обнаруживается вообще, хотя оно присутствует в папке плагинов для проекта. Первоначально я думал, что что-то пропустил, поэтому я снова создал проект, начав выполнять те же шаги. Однако на этот раз плагин будет обнаружен

Вопрос 2: Почему плагин весна-безопасности ведут себя так непоследовательно

Я пытался получить доступ к SecureController без регистрации, я получаю следующее сообщение об ошибке.

EL1008E: (поз 0): поле или свойство «ADMIN_ROLE» не может быть найден на объект типа «org.springframework.security.web.access.expression.WebSecurityExpressionRoot»

я получаю ту же ошибку после вход в систему и попытка доступа к контроллеру.

Вопрос 3: Является ли это тем, что я пропустил какие-либо зависимости, которые необходимо указать.

На странице входа в систему форма приводит к некоторому действию «j_security_check». Я не заметил этого действия ни в одном из контроллеров.

Вопрос 4: Мне нужно создать новое действие для с этим именем

Просьба помочь мне разобраться этот isssue делать. Большое спасибо за помощь.

+0

Один вопрос на вопрос :) –

+0

Привет, Burt, не могли бы вы рассказать мне, почему я получаю ошибку WebSecurityExpressionRoot. – Rammohan

+0

@ Rammohan это еще один вопрос (пожалуйста, откройте новый), вам нужно предоставить информацию журнала, чтобы мы могли вам помочь. –

ответ

0

После установки вашего плагина вам нужно запустить s2-quickstart, чтобы получить базовую конфигурацию.

Если вы хотите переименовать классы по умолчанию, вам нужно указать Spring Security в Config.groovy file:

grails.plugins.springsecurity.userLookup.userDomainClassName = 'sys.Usuario' 
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'sys.UsuarioRol' 
grails.plugins.springsecurity.authority.className = 'sys.Rol' 
// This last two lines if you're using Requestmap Instances method for protect your resources 
grails.plugins.springsecurity.requestMap.className = 'sys.Requestmap' 
grails.plugins.springsecurity.securityConfigType = 'Requestmap' 

Ниже приведена строка, предназначенная для отклонения всех запросов, если не существует правила для этих ресурсов.

grails.plugins.springsecurity.rejectIfNoRule = true 

Как вы можете видеть в documentation. У вас есть 4 разных формы для защиты ваших ресурсов.

  1. Обеспеченные Аннотации
  2. Простая карта в Config.groovy
  3. Requestmap экземпляров, хранящихся в базах данных
  4. Использование выражений для создания описательной, мелкозернистый Правила

Я согласен с Burth, один вопрос на вопрос пожалуйста.

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