2013-05-23 4 views
2

Мой вопрос похож на этот одинДополнительное поле в авторизации с помощью Plugin Grails Spring Security

How to pass an additional parameter with spring security login page

хотя это относится к плагину Grails Spring Security. Если мне нужно поддержать дополнительное поле в логине (название компании), как мне это сделать в Grails?

Я выберу поле имени компании из URL-адреса.

Например. /login? Companyname = c1 /login? Companyname = c2

То же имя пользователя может использоваться различными пользователями в разных компаниях. Таким образом, имя пользователя не уникально, но имя пользователя + название компании уникально.

Спасибо заранее.

ответ

0

Это нехорошее решение, но вы можете присоединиться к имени пользователя и названию компании в одно имя пользователя. Например, oneUser_company1, oneUser_company2. В этом случае вам придется создавать несколько учетных записей для одного пользователя.

+0

Благодаря Grzegorz, но я предпочел бы не использовать это solution.Found другой -http: //burtbeckwith.com/blog/? p = 1090 Попытка этого и отчитаться. Благодаря Берт Беквит! Его книга тоже хороша! –

0

Я думаю, что this custom filter - стартовая точка.

Возможно, вам понадобится обычай AuthenticationToken, чтобы сохранить название вашей компании, а не использовать UsernamePasswordAuthenticationToken.

Вам также понадобится AuthenticationProvider, так как вам нужно будет получить своего пользователя по имени пользователя и компании.

поток будет:

  • Фильтр будет создать свой собственный AuthenticationToken, сохраняя поле компании.
  • Вашего заказа AuthenticationProvider получит этот маркер и попытаться загрузить пользователь по имени пользователя и компаниям
  • Spring Security Ядро проверяет пароль
Смежные вопросы