久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Spring boot如何基于攔截器實現訪問權限限制

瀏覽:86日期:2023-08-08 15:12:24

遇到一個需求是:要為用戶設置不同的菜單、數據訪問權限。對于一些特定類型的數據,有的用戶可以看有的用戶則不可以。一開始沒有太多思路,后來一想是不是可以把'特定類型'這個參數通過@PathVariable注解加到路徑上,這樣就可以通過攔截器攔截后,校驗此用戶是否可以訪問這個路徑(類型)下的數據了。

話不多說,以下為具體實踐

攔截器配置類

@Configurationpublic class UserInterceptorConfig { //為了保證IDbnetUserService提前實例化,能在userInterceptor使用 //ConditionalOnMissingBean可以保證只有一個IDbnetUserService的實例 @Bean @ConditionalOnMissingBean(IDbnetUserService.class) public IDbnetUserService dbnetUserService() { return new DbnetUserServiceImpl(); } //攔截器 @Bean(name = 'userInterceptor') public HandlerInterceptor userInterceptor(IDbnetUserService dbnetUserService) { return new HandlerInterceptor() { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//url = request.getRequestURI() 判斷url是否可以有權限訪問而返回true或者false } }; }}

注冊攔截器

//注冊攔截器 @Bean public WebMvcConfigurer registerInterceptor(@Qualifier('userInterceptor') HandlerInterceptor userInterceptor) { return new WebMvcConfigurerAdapter() { @Override public void addInterceptors(InterceptorRegistry registry) {//要攔截的路徑List<String> path = interceptorProperties.getPath();//要排除的路徑List<String> excludePath = interceptorProperties.getExcludePath();registry.addInterceptor(userInterceptor).addPathPatterns(path.stream().toArray(String[]::new)) .excludePathPatterns(excludePath.stream().toArray(String[]::new)); } }; }

配置要攔截的路徑

@Component@ConfigurationProperties(prefix = 'dbnet.interceptor')public class InterceptorProperties { /** * 需要攔截的接口通配 */ private List<String> path = new ArrayList<>(); /** * 需要忽略的接口通配 */ private List<String> excludePath = new ArrayList<>(); public List<String> getPath() { return path; } public void setPath(List<String> path) { this.path = path; } public List<String> getExcludePath() { return excludePath; } public void setExcludePath(List<String> excludePath) { this.excludePath = excludePath; }}

dbnet: interceptor: path: /dbnet/**,/datanet/** excludePath: /dbnet/detail,/datanet/recommend,/datanet/count,/datanet/getKeys,/datenet/metadata/**

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 色玖玖 | 成人免费网站 | 99国产精品99久久久久久 | 凹凸日日摸日日碰夜夜 | 91色在线观看 | 久久三区| 97国产精品 | 成人免费久久 | 成人欧美一区二区三区白人 | 欧洲免费av| 色吊丝在线永久观看最新版本 | 国产在线观看av | 国产精品久久久久久一区二区三区 | 精品一区二区久久久久久久网站 | 成人在线免费观看 | 国产成年免费视频 | 国产成人亚洲综合 | 色婷婷综合久久久久中文一区二区 | 国产黄色在线观看 | 91aiai| 亚洲成人久久久 | 久久精品国产精品青草 | 亚洲一区视频网站 | 亚洲精品在线免费 | 亚洲午夜精品在线观看 | 国产精品永久在线 | 国产日韩91 | 一区二区三区免费看 | 欧美一区二区在线看 | 国精品产品区三区 | 黄色的视频免费 | 国产精品成人3p一区二区三区 | 精品国产欧美一区二区三区成人 | 青青伊人久久 | 精品xxxx户外露出视频 | 欧美一区二区在线播放 | 91婷婷射 | 久久人人爽人人爽人人片亚洲 | 久久极品 | 久久久综合亚洲91久久98 | 成人欧美一区二区三区在线播放 |