摘要:無攔截器一般情況下直接用就可以搞定了有攔截器比如需要對(duì)用戶身份進(jìn)行驗(yàn)證瀏覽器在發(fā)送請(qǐng)求時(shí)可能這個(gè)我還要去一下不會(huì)帶上驗(yàn)證信息在攔截器那里就沒通過進(jìn)而結(jié)束請(qǐng)求而前面方法的執(zhí)行是在攔截器后面不會(huì)起作用當(dāng)然在攔截器那里判斷如果是方法就通過也沒問題
無攔截器 @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"); } }有攔截器
比如需要對(duì)用戶身份進(jìn)行驗(yàn)證
@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; } } }
瀏覽器在發(fā)送OPTION請(qǐng)求時(shí),可能(這個(gè)我還要去google一下)不會(huì)帶上驗(yàn)證信息,在攔截器那里就沒通過,進(jìn)而結(jié)束請(qǐng)求.而前面方法的執(zhí)行是在攔截器后面,不會(huì)起作用.(當(dāng)然在攔截器那里判斷,如果是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; } }
這個(gè)過濾器會(huì)在執(zhí)行攔截器前面執(zhí)行
下載
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/66989.html
摘要:先來看一下容器的文件中間一些操作省略這里用了多階段構(gòu)建容器,如果直接通過設(shè)置環(huán)境變量只會(huì)在后面一個(gè)階段生效,但是是在第一個(gè)階段執(zhí)行的,所以環(huán)境變量不能應(yīng)用到當(dāng)中。 在今年年初的時(shí)候,完成了自己的個(gè)Fame博客系統(tǒng)的實(shí)現(xiàn),當(dāng)時(shí)也做了一篇博文Spring-boot+Vue = Fame 寫blog的一次小結(jié)作為記錄和介紹。從完成實(shí)現(xiàn)到現(xiàn)在,也斷斷續(xù)續(xù)的根據(jù)實(shí)際的使用情況進(jìn)行更新。 只不過每...
摘要:從前端到后端到運(yùn)維,經(jīng)歷了幾次前后端架構(gòu)的演變,踩了無數(shù)的坑,度過無數(shù)難免的夜。為了工作或?qū)W習(xí),確實(shí)造過一些輪子,前端的后端的,也開源出來過覺得能提高生產(chǎn)力的。 showImg(https://segmentfault.com/img/bVbgeXP?w=713&h=275); 序: 開源的意義 本系列提前首發(fā)地址 背景 從事了近4年的互聯(lián)網(wǎng)行業(yè),逐漸擔(dān)當(dāng)過團(tuán)隊(duì)的前端到后端的負(fù)責(zé)人,和...
摘要:盡量按照前端后端部署運(yùn)維來講,當(dāng)然中途涉及到跨域這種前后協(xié)調(diào)的還是無法避免捎帶一筆。關(guān)于我目前在寫從零構(gòu)建前后分離項(xiàng)目系列,修正和補(bǔ)充以此為準(zhǔn)不斷更新的項(xiàng)目實(shí)踐地址彩蛋提前預(yù)覽下一章傳送門 序: 開源的意義 本系列提前首發(fā)地址 背景 從事了近4年的互聯(lián)網(wǎng)行業(yè),逐漸擔(dān)當(dāng)過團(tuán)隊(duì)的前端到后端的負(fù)責(zé)人,和大家一樣從小白逐漸的成長(zhǎng)起來,回首望去幾年前的博客還是那么稚嫩。 回首這幾年: 從一個(gè)ja...
摘要:這里使用的是數(shù)據(jù)庫啟動(dòng)類上加上注解在啟動(dòng)類中添加對(duì)包掃描掃描多個(gè)包下的可以有以下幾種方法掃描會(huì)自動(dòng)加載相關(guān)配置,數(shù)據(jù)源就會(huì)自動(dòng)注入到中,會(huì)自動(dòng)注入到中,可以直接使用。有配置文件下的使用掃描多個(gè)包下的可以有以下幾種方法掃描 Spring-Boot 學(xué)習(xí)筆記 1 Spring-Boot 介紹 1.1 什么是Spring-Boot Spring-Boot是由Pivotal團(tuán)隊(duì)提供的全新框架...
摘要:前言最近在業(yè)務(wù)代碼中深受跨域問題困擾,因此特別寫一篇博客來記錄一下自己對(duì)跨域的理解以及使用到的參考資料。內(nèi)嵌式跨域通常也是允許的。而我使用時(shí)因?yàn)檫@個(gè)響應(yīng)報(bào)文最后被認(rèn)為是跨域問題,無法從中獲得的狀態(tài)碼。它代表服務(wù)器支持跨域時(shí)攜帶認(rèn)證信息。 前言 最近在業(yè)務(wù)代碼中深受跨域問題困擾,因此特別寫一篇博客來記錄一下自己對(duì)跨域的理解以及使用到的參考資料。本文的項(xiàng)目背景基于vue+vuex+axio...
閱讀 1710·2021-11-12 10:36
閱讀 1628·2021-11-12 10:36
閱讀 3452·2021-11-02 14:46
閱讀 3822·2019-08-30 15:56
閱讀 3576·2019-08-30 15:55
閱讀 1469·2019-08-30 15:44
閱讀 1056·2019-08-30 14:00
閱讀 2744·2019-08-29 18:41