Страница входа с весны - PullRequest
       25

Страница входа с весны

0 голосов
/ 29 апреля 2020

Я настраиваю поддержку безопасности в Spring и изучаю, что она может предложить. При настройке URL-адреса входа и просмотра мне нужно было зарегистрировать простые контроллеры для дома и URL-адреса входа. Конкретно, код:

@Override
    public void addViewControllers(ViewControllerRegistry registry){
        registry.addViewController("/").setViewName("home");
        registry.addViewController("/login");
    }

В строке registry.addViewController("/").setViewName("home"); кажется, что эта строка просто добавляет контроллер для URL "/" и для GET к этому URL просто использует представление "home" для рендеринга.
Я правильно понял? Главный вопрос о линии registry.addViewController("/login");. Здесь я добавляю контроллер для URL "/ login".
Но как приложение знает, какое представление использовать? Когда я попробовал приложение, оно действительно использовало созданный мной вид входа в систему.

1 Ответ

0 голосов
/ 30 апреля 2020

Ну, вы на правильном пути, но не полностью. Если вы НЕ вошли в систему и не открыли URL «yourdomain.tld /», вы будете перенаправлены на URL «yourdomain.tld / home», который обычно может быть страницей входа. (первая строка). Конечно, вам нужен контроллер для обработки этого запроса и возврата правильной страницы JSP / JSF.

Ваша вторая строка не нужна. Хитрость в том, что с такой конфигурацией вы можете использовать URL «yourdoamin.tld /» с другой страницей для зарегистрированных пользователей.

И чтобы ответить на ваш главный вопрос, вам нужен контроллер для каждого URL или части URL, который вы хотите использовать. И в этом контроллере вы можете выбирать представления в соответствии с запрошенным URL.

Пример:

@Controller
@RequestMapping(value="/info")
@Scope(value="session")
public class InfoController extends AbstractWebController {

    @RequestMapping
    public ModelAndView infoPage() {
        ModelAndView mav = this.getModelAndView("info/infopage");
        return mav;
    }
}

Этот контроллер отвечает за все URL, начиная с «yourdomain.tld / info». И, как вы можете видеть, у меня есть только URL «yourdomain.tld / info», чтобы получить правильное представление. В этом примере я возвращаю «infopage. jsp». Вы можете добавить код для возврата различных представлений для других страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...