2015-01-06 1 views
1

Я хотел бы разрешить пользователю входить в систему с использованием либо аутентификации по формату, либо аутентификации OAuth.Аутентификация формы JSF + OAuth

Для проверки подлинности формы я использую JDBC Realm (работает на сервере Glassfish) и делаю HttpServletRequest.login(username, password) в контроллере.

Это позволяет получить доступ к страницам с ограничениями в web.xml с помощью security-constraint.

Чтобы использовать доступ к facebook, я использую библиотеку socialauth. При этом я могу видеть данные пользователя facebook в контроллере, но пользователь не может получить доступ к защищенным страницам, поскольку я не знаю, как это сделать login(username, password), потому что у меня, видимо, нет пароля пользователя.

Что мне делать? Нужно ли мне создавать пользовательские ресурсы?

ответ

1

Что мне делать? Нужно ли мне создавать пользовательские ресурсы?

Nope. Просто зарегистрируйте его как новый пользователь.

Не забудьте отметить в БД ли социальную учетную запись или нет, а также не забудьте проверить заранее, если имя входа (адрес электронной почты) связано с социальной учетной записью или нет.

+0

Хорошо, но после регистрации, как мне войти в систему с FB? Я не могу выполнить HttpServletRequest.login (...), так как у меня нет пароля. И если я не сделаю логин, пользователь не сможет получить доступ к страницам с ограниченным доступом. –

+0

Просто держите пароль нулевым или используйте по умолчанию или создайте его на основе имени входа и соли. Благодаря успешному социальному ауту вы уже подтверждаете, что он действительный пользователь. Возможно, вы, наконец, лучше поймете последний параграф ответа. – BalusC

+0

О, я знаю! Я хотел иметь одного пользователя как для входа в систему, так и для входа в систему, не думал о том, что у вас есть отдельные подключенные пользователи. Спасибо за это предложение. –