Авторизация по токену для POST/PUT/DEL в RESTful API на Spring Boot

436
02 февраля 2017, 00:35

Здравствуйте! Впервые практикуюсь в REST и Spring.

Задача: создать простенький API, где всего 2 вида сущностей (посты и комменты к ним) и типичные задачи на создание (POST) и GET/PUT/DELETE по id сущности.

Без особых требований к БД и прочих нюансов, удалось без проблем построить такой сервис с помощью Spring Boot и БД H2. Протестировал на Postman - все отлично работает.

Сложности возникли с реализацией построением защиты. Необходимо реализовать авторизацию исключительно по токену, при этом авторизация для просмотра (всех GET запросов не нужна). Подключал Spring Security, создавал сущность юзера, имплементировал его в качестве автора рабочих сущностей, разделял роли и права на юзер/админ, в какой-то момент все работало (кроме ролей, так и не завел), но аутентификацию запрашивало всегда, включая GET. Откатился назад. Может не с той стороны подхожу? Напомню, что со Spring работаю впервые.

Проект на Gradle, из интересного:

apply plugin: 'spring-boot'
dependencies {
compile 'org.springframework.boot:spring-boot-starter-data-rest'
compile 'org.springframework.boot:spring-boot-starter-data-jpa'
compile 'com.h2database:h2'
}

Структура проекта:

-com
  -entities
    -BaseEntity (abstract)
    -Post
    -Comment
  - repositories (интерфейсы, extends PagingAndSortingRepository)
    -PostRep
    -CommentRep
  - Application (@SpringBootApplication)
  - DatabaseLoader (implements ApplicationRunner, забивает БД сущностями для наглядности)

Подскажите возможные варианты реализации проблемы из заголовка. С чего начать, что и куда добавить? Или зря на Spring Boot делал?

READ ALSO
org.hibernate.MappingException: An AnnotationConfiguration instance is required

org.hibernate.MappingException: An AnnotationConfiguration instance is required

В общем получаю данную ошибку при попытке получить данные из БД mySql в сервлете

421
Узнать окончание воспроизведения MediaPlayer

Узнать окончание воспроизведения MediaPlayer

Как узнать, что MediaPlayer завершил проигрывать аудио и начать воспроизведение другого аудио?

376
восстановление пароля от jks

восстановление пароля от jks

У меня ест jks файл, который используется для подписи android приложенияТак вот проблема в том как получить пароль (пароли) от сертификата, т

614
Перенаправление лога slf4j

Перенаправление лога slf4j

Использую библиотеку Parallec, которая в свою очередь ведет логи в slf4jСкажите можно ли перенаправить сообщения заданного уровня (WARN и страшнее)...

409