Ограничить прямой доступ к JSP странице(Spring MVC)

378
30 мая 2017, 00:18

Необходимо запретить пользователю прямой доступ(доступ по url из браузера) к jsp страницам. При этом мои страницы лежат в папке WEB-INF/view и все равно прописав url я получаю страницу любую.

Как ограничить прямой доступ?

Answer 1

Есть два способа. Первый - это вообще не использовать 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";
    }
}
READ ALSO
Где стартовать индикатор загрузки?

Где стартовать индикатор загрузки?

При onCreate одного из Активити, происходит чтение большого файла из Assets (или с диска) и его "распарсивание"На это время хочу включить индикатор...

311
Hibernate: выбирать из БД не все поля

Hibernate: выбирать из БД не все поля

Возможно ли в Hibernate такое: При получении Entity из БД выбирать не все поля а только некоторые, чтобы снизить нагрузку на базу? Например, при логине...

390
Новый поток в сервисе

Новый поток в сервисе

Есть сервис такого типа, который запускается каждый раз при открытии приложения:

275
Android визуализация голосового сообщения

Android визуализация голосового сообщения

У голосового сообщения есть массив значений для визуализации, нужно сделать эту визуализациюКак это лучше сделать? Пример массива:

243