apache Конфигурация URL Широ для переменной пути - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть контроллер пружины, подобный следующему:

@Controller
@RequestMapping("/tickets")
public class TicketWeb {

    @GetMapping("/{ticketNo}")
    ...

    @GetMapping("/a")

    @GetMapping("/b")

    @PostMapping("/c")

    //maybe more fixed path mapping
}

В этом контроллере у меня есть один path variable как /{ticketNo}, другие имеют фиксированный путь.

с apache Широ, я хочу annon только для переменной пути, все остальные фиксированные пути authc.

Согласно apache Широ до c, кажется, что есть только два решения для достижения моей цели :

опция 1 :

filterChainDefinitionMap.put("/tickets/a","authc");
filterChainDefinitionMap.put("/tickets/b","authc");
filterChainDefinitionMap.put("/tickets/c","authc");

filterChainDefinitionMap.put("/tickets/*","annon");

, для которой fixed path установлено authc одно за другим, path variable установлено annon, но это нехорошо, потому что, возможно, есть некоторые fixed path или добавьте еще fixed path в будущем.

опция 2 - это изменение переменной пути /{ticketNo} на другую, например /annon/{ticketNo} , чтобы отличить guish фиксированный путь, так что разработчик может установить

filterChainDefinitionMap.put("/tickets/annon/*","annon");

filterChainDefinitionMap.put("/tickets/*","authc");

только с двумя строками.

Таким образом, есть только эти два решения для реализации моей цели, я Я прав?

1 Ответ

0 голосов
/ 14 февраля 2020

Широ использует сопоставление паттернов в стиле Ant, см. https://shiro.apache.org/static/1.5.0/apidocs/org/apache/shiro/util/AntPathMatcher.html для некоторых примеров.

...