Security框架-如何使用CorsFilter解決前端跨域請求問題_第1頁
Security框架-如何使用CorsFilter解決前端跨域請求問題_第2頁
Security框架-如何使用CorsFilter解決前端跨域請求問題_第3頁
Security框架-如何使用CorsFilter解決前端跨域請求問題_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第Security框架:如何使用CorsFilter解決前端跨域請求問題if(request.getMethod().equals(OPTIONS))

//response.setStatus(HttpServletResponse.SC_OK);

response.setStatus(HttpServletResponse.SC_NO_CONTENT);

else

filterChain.doFilter(request,response);

//@Override

//publicvoiddoFilter(ServletRequestreq,ServletResponseres,

//FilterChainchain)throwsIOException,ServletException{

//HttpServletResponseresponse=(HttpServletResponse)res;

////測試環境用【*】匹配,上生產環境后需要切換為實際的前端請求地址

//response.setHeader(Access-Control-Allow-Origin,*

//response.setHeader(Access-Control-Allow-Methods,POST,GET,OPTIONS,DELETE

//response.setHeader(Access-Control-Max-Age,0

//response.setHeader(Access-Control-Allow-Headers,Origin,No-Cache,X-Requested-With,If-Modified-Since,Pragma,Last-Modified,Cache-Control,Expires,Content-Type,X-E4M-With,auth

//response.setHeader(Access-Control-Allow-Credentials,true

//response.setHeader(XDomainRequestAllowed,1

//chain.doFilter(req,res);

//@Override

//publicvoiddestroy(){

//@Override

//publicvoidinit(FilterConfigarg0)throwsServletException{

}

注釋:這里的Access-Control-Expose-Headers的請求頭是為了使前端能夠獲得到后端在response中自定義的header,不設置的話,前端只能看到幾個默認顯示的header。我這里是在使用response導出Excel的時候將文件名和下載狀態信息以自定義請求頭的形式放在了response的header里。

在Security的配置文件中初始化CorsFilter的Bean

@Bean

publicCorsFiltercorsFilter()throwsException{

returnnewCorsFilter();

在Security的配置文件中添加Filter配置,和映射配置

.antMatchers(HttpMethod.OPTIONS,/**).permitAll()

//除上面外的所有請求全部需要鑒權認證。.and()相當于標示一個標簽的結束,之前相當于都是一個標簽項下的內容

.anyRequest().authenticated().and()

.addFilterBefore(corsFilter(),UsernamePasswordAuthenticationFilter.class)

附:該配置文件

packagecom.handlecar.basf_pmdb_service.conf;

importcom.handlecar.basf_pmdb_service.filter.CorsFilter;

importcom.handlecar.basf_pmdb_service.filter.JwtAuthenticationTokenFilter;

importcom.handlecar.basf_pmdb_service.security.JwtTokenUtil;

importcom.handlecar.basf_pmdb_service.security.CustomAuthenticationProvider;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.context.annotation.Bean;

importorg.springframework.context.annotation.Configuration;

importorg.springframework.http.HttpMethod;

importorg.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;

importorg.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;

importorg.springframework.security.config.annotation.web.builders.HttpSecurity;

importorg.springframework.security.config.annotation.web.configuration.EnableWebSecurity;

importorg.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

importorg.springframework.security.config.http.SessionCreationPolicy;

importorg.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;

//importcom.allcom.security.JwtTokenUtil;

@Configuration

//@EnableWebSecurityisusedtoenableSpringSecurityswebsecuritysupportandprovidetheSpr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論