代码之家  ›  专栏  ›  技术社区  ›  Haider

请求时的Spring过滤器授权参数

  •  1
  • Haider  · 技术社区  · 6 年前

    codes (字符串列表) 我想授权这些代码列表,以检查当前用户是否可以访问列表中的所有代码,并根据这些代码进行过滤。我想要的是为那些控制器创建一个通用过滤器,我不能用URL映射来应用它。有没有一种方法可以创建一个过滤器并只对一些方法应用注释(请求映射)?

    另一个问题是在会话中保留600个代码的列表是可以的还是db调用更合适?我希望这些代码的授权调用频繁(用户可以查看(更频繁),更新(不频繁)与代码相关的数据)

    更新:

    例如,我有两种方法:

    @RequestMapping(value="/getInfo")
    public void viewInfo(@RequestParam("codes") List<String> codes)
    
    @RequestMapping(value="/getDetailInfo")
    public void getDetailInfo(@RequestParam("codes") List<String> codes)
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   Gustavo Passini    6 年前

    创建弹簧过滤器

    此线程可能有助于:

    注册的示例 HandlerInterceptor

    @EnableWebMvc
    @Configuration
    public class WebConfig extends WebMvcConfigurerAdapter {
    
        @Bean
        SessionManager getSessionManager() {
             return new SessionManager();
        }
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(getSessionManager())
            .addPathPatterns("/**")
            .excludePathPatterns("/resources/**", "/login");
         // assuming you put your serve your static files with /resources/ mapping
         // and the pre login page is served with /login mapping
        }
    }
    

    存储函数调用返回的值

    您可以使用 Caching .

    这样,检索代码的函数的第一次调用将命中数据库并保存在缓存中。后续调用不会一直到数据库,而是使用缓存中存储的值,只要它是活动的。