Spring RequestMapping с настраиваемым параметром isLoggedIn - PullRequest
0 голосов
/ 29 мая 2020

Я искал inte rnet уже несколько часов и не могу найти способ добавить свои собственные переменные в отображение запросов.

Мы используем настраиваемую систему аутентификации пользователей. И я хочу обслуживать 2 разных контроллера для одного и того же пути в зависимости от того, аутентифицирован пользователь или нет. В частности, я хочу создать контроллеры, которые будут отображаться только в том случае, если пользователь не аутентифицирован.

Как я могу добиться чего-то вроде этого: (Я хочу определить isLoggedIn себя).

public class PageController {
  @RequestMapping(value = "/page", isLoggedIn = false)
  @ResponseBody
  String getPage(){
    return "Page content";
  }
}

Я хочу, чтобы запрос попадал в этот контроллер, если пользователь не вошел в систему, и откат, чтобы поймать все, если пользователь вошел в систему. Я открыт для решений, использующих перехватчики, пользовательские аннотации, расширение RequestMapping или что-то еще.

1 Ответ

0 голосов
/ 29 мая 2020
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
        method = {RequestMethod.GET}
)
public @interface CustomGetRequestMapping {

    @AliasFor(value = "value", annotation = RequestMapping.class)
    String path();

    boolean isLoggedIn() default false;
}

Думаю, этого недостаточно, потому что вам нужно написать перехватчик и поймать зарегистрированного пользователя.

...