摘要:無攔截器一般情況下直接用就可以搞定了有攔截器比如需要對用戶身份進行驗證瀏覽器在發送請求時可能這個我還要去一下不會帶上驗證信息在攔截器那里就沒通過進而結束請求而前面方法的執行是在攔截器后面不會起作用當然在攔截器那里判斷如果是方法就通過也沒問題
無攔截器 @CrossOrigin
一般情況下,直接用@CrossOrigin就可以搞定了
@CrossOrigin(origins = "http://localhost:8080") @RequestMapping(value = "/cors", method = RequestMethod.GET) public Object cors(){ ... }JavaConfig
@Configuration @EnableWebMvc public class WebMvcConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/cors"); } }有攔截器
比如需要對用戶身份進行驗證
@Component public class AuthInterceptor extends HandlerInterceptorAdapter{ private static final Logger logger= LoggerFactory.getLogger(AuthInterceptor.class); public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){ String _authorization = request.getHeader("Authorization"); logger.info("authorization:{}",_authorization); if(_authorization!=null){ request.setAttribute("authorization",_authorization); return true; }else{ response.setStatus(403); return false; } } }
瀏覽器在發送OPTION請求時,可能(這個我還要去google一下)不會帶上驗證信息,在攔截器那里就沒通過,進而結束請求.而前面方法的執行是在攔截器后面,不會起作用.(當然在攔截器那里判斷,如果是OPTION方法就通過,也沒問題)
這就需要另一種方法
@Configuration @EnableWebMvc public class WebMvcConfig extends WebMvcConfigurerAdapter { @Autowired private AuthInterceptor authInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(authInterceptor); } @Bean public FilterRegistrationBean corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); config.addAllowedOrigin("*"); config.addAllowedHeader("*"); config.addAllowedMethod("*"); source.registerCorsConfiguration("/cors", config); FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source)); bean.setOrder(0); return bean; } }
這個過濾器會在執行攔截器前面執行
下載
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66989.html
摘要:先來看一下容器的文件中間一些操作省略這里用了多階段構建容器,如果直接通過設置環境變量只會在后面一個階段生效,但是是在第一個階段執行的,所以環境變量不能應用到當中。 在今年年初的時候,完成了自己的個Fame博客系統的實現,當時也做了一篇博文Spring-boot+Vue = Fame 寫blog的一次小結作為記錄和介紹。從完成實現到現在,也斷斷續續的根據實際的使用情況進行更新。 只不過每...
摘要:從前端到后端到運維,經歷了幾次前后端架構的演變,踩了無數的坑,度過無數難免的夜。為了工作或學習,確實造過一些輪子,前端的后端的,也開源出來過覺得能提高生產力的。 showImg(https://segmentfault.com/img/bVbgeXP?w=713&h=275); 序: 開源的意義 本系列提前首發地址 背景 從事了近4年的互聯網行業,逐漸擔當過團隊的前端到后端的負責人,和...
摘要:盡量按照前端后端部署運維來講,當然中途涉及到跨域這種前后協調的還是無法避免捎帶一筆。關于我目前在寫從零構建前后分離項目系列,修正和補充以此為準不斷更新的項目實踐地址彩蛋提前預覽下一章傳送門 序: 開源的意義 本系列提前首發地址 背景 從事了近4年的互聯網行業,逐漸擔當過團隊的前端到后端的負責人,和大家一樣從小白逐漸的成長起來,回首望去幾年前的博客還是那么稚嫩。 回首這幾年: 從一個ja...
摘要:這里使用的是數據庫啟動類上加上注解在啟動類中添加對包掃描掃描多個包下的可以有以下幾種方法掃描會自動加載相關配置,數據源就會自動注入到中,會自動注入到中,可以直接使用。有配置文件下的使用掃描多個包下的可以有以下幾種方法掃描 Spring-Boot 學習筆記 1 Spring-Boot 介紹 1.1 什么是Spring-Boot Spring-Boot是由Pivotal團隊提供的全新框架...
摘要:前言最近在業務代碼中深受跨域問題困擾,因此特別寫一篇博客來記錄一下自己對跨域的理解以及使用到的參考資料。內嵌式跨域通常也是允許的。而我使用時因為這個響應報文最后被認為是跨域問題,無法從中獲得的狀態碼。它代表服務器支持跨域時攜帶認證信息。 前言 最近在業務代碼中深受跨域問題困擾,因此特別寫一篇博客來記錄一下自己對跨域的理解以及使用到的參考資料。本文的項目背景基于vue+vuex+axio...
閱讀 1699·2021-11-12 10:36
閱讀 1615·2021-11-12 10:36
閱讀 3442·2021-11-02 14:46
閱讀 3798·2019-08-30 15:56
閱讀 3534·2019-08-30 15:55
閱讀 1463·2019-08-30 15:44
閱讀 1044·2019-08-30 14:00
閱讀 2735·2019-08-29 18:41