Необходимо запретить пользователю прямой доступ(доступ по url из браузера) к jsp страницам. При этом мои страницы лежат в папке WEB-INF/view и все равно прописав url я получаю страницу любую.
Как ограничить прямой доступ?
Есть два способа. Первый - это вообще не использовать url'ы типа /home/<username>
, а использовать вместо них просто /home
, на который повесить контроллер, отдающий контент только для текущего пользователя. Второй - возвращать ошибку HTTP 403 для пользователей не прошедших проверку и перенаправлять на форму логина или возвращать HTTP 401 для неавторизованных пользователей. С помощью Spring Security это можно сделать так:
@Controller
@RequestMapping("/home")
public class HomeController {
@RequestMapping(path = "/{userName}", method = RequestMethod.GET)
@PreAuthorize("authentication.name == #userName")
public String userHome(@PathVariable("userName") String userName, Model uiModel) {
return "user_home";
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При onCreate одного из Активити, происходит чтение большого файла из Assets (или с диска) и его "распарсивание"На это время хочу включить индикатор...
Возможно ли в Hibernate такое: При получении Entity из БД выбирать не все поля а только некоторые, чтобы снизить нагрузку на базу? Например, при логине...
Есть сервис такого типа, который запускается каждый раз при открытии приложения:
У голосового сообщения есть массив значений для визуализации, нужно сделать эту визуализациюКак это лучше сделать? Пример массива: