2016-12-27 4 views
0

Я бы хотел войти в систему на веб-странице, но не используя имя пользователя и пароль, кроме токена. Поэтому у меня есть две таблицыВесенняя безопасность Войти в интернет по token

User: 
id 
username 
password 

Token: 
id 
user_id 
token 

Так что теперь, если пользователь открыть в браузере страницу domain.com/token/{token} затем должны найти user_id с помощью маркера и нагрузки для этого ролей пользователей, prives и т.д.

Я искал об этом, но нашел решения для JWT (Rest API).

спасибо за советы

UPDATE система будет генерировать маркер для пользователя и добавит запись в Token таблице.

Ex: маркер: token3333 для пользователя с идентификатором 3;)

когда пользователь перейти на страницу domain.com/token/token3333 автоматически будет записываться как пользователь с идентификатором 3 без заполнения имени пользователя и пароля.

+0

https://spring.io/blog/2015/01/20/the-resource-server-angular-js-and-spring-security-part-iii Вот весенний учебник с основанной на токенах аутентификацией. – Reek

+0

@Reek Я почти уверен, что учебник - это не то, что я прошу. Существует сообщение заголовка «X-Auth-Token» с запросом маркера, так что это не то, что мне нужно – Robert

ответ

0

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

Я не могу понять, почему ваша система входа в систему с одним единственным токеном лучше, чем классическая страница входа в систему с именем пользователя + пароль, а ИМХО вы должны дважды подумать о реальной причине этого.

Простым способом было бы использовать контроллер весны-mvc, который обрабатывал бы URL-адрес domain.com/token/{token}, находил бы идентификатор пользователя в базе данных и напрямую создавал полностью аутентифицированный токен аутентификации. Затем вам нужно просто вставить SecurityContext, полученный из статических методов класса SecurityContextHolder.

Если вы предпочитаете более удобную интеграцию в систему Spring, не полагаясь на spring-mvc, вы должны настроить настройку настраиваемого фильтра обработки аутентификации, который будет использовать токен, переданный в URL, для создания правильной пользовательской аутентификации. Он должен быть получен из AbstractAuthenticationProcessingFilter. Затем вы должны установить AuthenticationProvider, способный обрабатывать этот токен и фактически аутентифицировать пользователя через токен и вводить его в AuthenticationManage. Здесь гораздо больше кипящей плитки, и для вашего нынешнего вопроса я действительно не уверен, стоит ли это.

+0

Спасибо за совет. – Robert