第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Tomcat 8 和 Spring Security Cors

Tomcat 8 和 Spring Security Cors

Cats萌萌 2024-01-17 16:32:27
我正在嘗試配置 Spring Security 以使其支持 CORS。我已經(jīng)使用 Spring Boot 使用以下配置代碼使其在我的本地主機(jī)上工作:@Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter {? ? @Override? ? protected void configure(HttpSecurity http) throws Exception {? ? ? ? http.cors()? ? ? ? .and()? ? ? ? .antMatcher("/api/**")? ? ? ? .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)? ? ? ? .and()? ? ? ? .authorizeRequests()? ? ? ? .antMatchers(HttpMethod.POST, "/api/login").permitAll()? ? ? ? .antMatchers(HttpMethod.GET, "/api/websocket/**").permitAll()? ? ? ? .antMatchers("/api/**").authenticated()? ? ? ? .and()? ? ? ? .addFilterBefore(new JWTLoginFilter("/api/login", HttpMethod.POST, authenticationManager(), tokenAuthenticationService, myUserService), UsernamePasswordAuthenticationFilter.class)? ? ? ? .addFilterBefore(new JWTAuthenticationFilter(tokenAuthenticationService), UsernamePasswordAuthenticationFilter.class)? ? ? ? .csrf().disable();? ? }@Beanpublic CorsConfigurationSource corsConfigurationSource() {? ? final CorsConfiguration configuration = new CorsConfiguration();? ? configuration.setAllowedOrigins(ImmutableList.of("*"));? ? configuration.setAllowedMethods(ImmutableList.of("HEAD",? ? ? ? ? ? "GET", "POST", "PUT", "DELETE", "PATCH"));? ? // setAllowCredentials(true) is important, otherwise:? ? // The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'.? ? configuration.setAllowCredentials(true);? ? // setAllowedHeaders is important! Without it, OPTIONS preflight request? ? // will fail with 403 Invalid CORS request? ? configuration.setAllowedHeaders(ImmutableList.of("Authorization", "Cache-Control", "Content-Type"));? ? final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();? ? source.registerCorsConfiguration("/**", configuration);? ? return source;}}這是失敗的 OPTIONS 請(qǐng)求的屏幕截圖:以及我的本地主機(jī)上的工作請(qǐng)求:
查看完整描述

5 回答

?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊

Spring security 提供了一種在 http 配置器中配置 CORS 的方法,有一種更簡潔的方法可以將 CORS 過濾器添加到應(yīng)用程序中 -


@Component 

@Order(Ordered.HIGHEST_PRECEDENCE)

public class MyCORSFilterClass implements Filter {

@Override

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 

throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) req;

HttpServletResponse response = (HttpServletResponse) res;


response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));

response.setHeader("Access-Control-Allow-Credentials", "true");

response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");

response.setHeader("Access-Control-Max-Age", "3600");

response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me");

chain.doFilter(req, res);

}

@Override

public void init(FilterConfig filterConfig) {

}


@Override

public void destroy() {

}

}

以最高優(yōu)先級(jí)對(duì)過濾器進(jìn)行排序可確保 javax.servlet.Filter 的 MyCORSFilterClassimplementation 是鏈中的第一個(gè)。


查看完整回答
反對(duì) 回復(fù) 2024-01-17
?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

  1. 嘗試在本地方法中放置一個(gè)調(diào)試點(diǎn)corsConfigurationSource()并檢查它是否正在執(zhí)行。如果它沒有被執(zhí)行,請(qǐng)調(diào)查原因 - 可能通過啟用 Spring 的調(diào)試日志和/或重新檢查 Spring 配置。

  2. 另外,嘗試添加選項(xiàng)setAllowedMethods

    configuration.setAllowedMethods(ImmutableList.of("HEAD", "GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"));



查看完整回答
反對(duì) 回復(fù) 2024-01-17
?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊

響應(yīng)403反映授權(quán)失敗。您的服務(wù)器可能已設(shè)置為要求對(duì)選項(xiàng)請(qǐng)求進(jìn)行授權(quán)。您必須確保選項(xiàng)配置為發(fā)送成功響應(yīng)(2xx 狀態(tài)代碼),以允許瀏覽器發(fā)送實(shí)際請(qǐng)求。2xx 響應(yīng)通知瀏覽器服務(wù)器處理 CORS 請(qǐng)求。

您的請(qǐng)求在本地有效的原因可能是您在提出請(qǐng)求時(shí)已獲得授權(quán)。因此,請(qǐng)檢查您的身份驗(yàn)證以確保其正確。因此,飛行前請(qǐng)求不會(huì)發(fā)送任何授權(quán)標(biāo)頭,因此您不應(yīng)該在服務(wù)器端進(jìn)行期望。


查看完整回答
反對(duì) 回復(fù) 2024-01-17
?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊

檢查 tomcat 服務(wù)器是否在 $CATALINA_BASE/conf/web.xml 中配置了沖突的 CORS 過濾器



查看完整回答
反對(duì) 回復(fù) 2024-01-17
?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊

Tomcat 也有自己的 cors 過濾器,如果您在 tomcat 之前使用其他服務(wù)器(例如 nodejs、apache 服務(wù)器 vs ),也請(qǐng)檢查其 cors 過濾器。



查看完整回答
反對(duì) 回復(fù) 2024-01-17
  • 5 回答
  • 0 關(guān)注
  • 276 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)