如何使用具有多个路径的 Spring Security .antMatchers()

如果我使用 Spring Securitys “antMatchers()”- 方法有区别吗


.antMatchers(

    "/",

    "/app/**",

    "/profiles/**",

    "/captcha/**",

    c440_START_PAGE,

    FAVICON_ICO,

    C440_LOGIN,

    getCustomerRessourcePath(),

    getCustomerWebRessourcePath(),

    "/services/userService/**",

    "/services/applicationService/**",

    "/services/textContentService/**",

    "/services/textContentBlockService/**",

    "/services/menuItemService/**",

    "/services/calculatorService/**"

).permitAll()

或者相反


.antMatchers("/").permitAll()

.antMatchers("/app/**").permitAll()

.antMatchers("/profiles/**").permitAll()

.antMatchers("/captcha/**").permitAll()

.antMatchers(c440_START_PAGE).permitAll()

.antMatchers(FAVICON_ICO).permitAll()

.antMatchers(C440_LOGIN).permitAll()

.antMatchers(getCustomerRessourcePath()).permitAll()

.antMatchers(getCustomerWebRessourcePath()).permitAll()

.antMatchers("/services/userService/**").permitAll()

.antMatchers("/services/applicationService/**").permitAll()

.antMatchers("/services/textContentService/**").permitAll()

.antMatchers("/services/textContentBlockService/**").permitAll()

.antMatchers("/services/menuItemService/**").permitAll()

.antMatchers("/services/calculatorService/**").permitAll()

? 我是 Spring Security 的新手,对此不确定...


温温酱
浏览 135回答 1
1回答

元芳怎么了

它们都与您的实现相同。但是第二种方式在提供基于角色的授权等方面提供了更大的灵活性。例如,如果您希望角色ADMIN被授权访问"/"并且角色USER被授权访问"/app/*",那么这将实现如下:.antMatchers("/").hasRole("ADMIN").antMatchers("/app/**").hasRole("USER")请注意,.permitAll()对于具有相同配置的每组模式,只需要在末尾添加一次,而不必在每一行上添加。方法的签名之一antMatchers是public C antMatchers(java.lang.String... antPatterns)这意味着您可以将一个或多个模式传递给该方法。更多信息可以在antMatchers 的 spring 文档中找到
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java