У меня есть две таблицы в моей базе данных. Пользователь и user_role.Spring, @RolesAllowed и база данных для защиты страниц
CREATE TABLE `user` (
`username` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`enable` tinyint(4) NOT NULL DEFAULT '1',
PRIMARY KEY (`username`),
UNIQUE KEY `unique_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE `user_roles` (
`user_role_id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(45) NOT NULL,
`ROLE` varchar(45) NOT NULL,
PRIMARY KEY (`user_role_id`),
UNIQUE KEY `uni_username_role` (`ROLE`,`username`),
KEY `fk_username_idx` (`username`),
CONSTRAINT `fk_username` FOREIGN KEY (`username`) REFERENCES `user` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
«роль» в user_roles показать роли, которые пользователь имеет {ROLE_USER, ROLE_ADMIN}
Я хотел бы использовать @RolesAllowed, чтобы запретить доступ пользователей к некоторым страницам (и предоставлять доступ к админам) , но я не знаю, как получить user_role из базы данных и отправить его в RolesAllowed.
Получить user_role в контроллере не проблема, но я не думаю, что это хорошая идея проверить роль пользователя в каждой функции.
Или, может быть, есть лучшее решение, чем использование @RolesAllowed?
Извините за глупый вопрос, это 5 часов, так как я видел весну в первый раз.