Heim  >  Artikel  >  Java  >  Wie SpringBoot globale und lokale domänenübergreifende Implementierungen implementiert

Wie SpringBoot globale und lokale domänenübergreifende Implementierungen implementiert

王林
王林nach vorne
2023-05-14 23:16:14947Durchsuche

Was ist domänenübergreifend?

Die sogenannte domänenübergreifende Anforderung bedeutet: Die Domäne, in der die Anforderung derzeit initiiert wird, unterscheidet sich von der Domäne, in der sich die Ressource befindet, auf die die Anforderung verweist. Die Domäne bezieht sich hier auf das Konzept: Wir glauben, dass es sich um dieselbe Domäne handelt, wenn Protokoll + Domänenname + Portnummer gleich sind.

Lösung domänenübergreifender Probleme

Das Backend löst domänenübergreifende Probleme, hauptsächlich mit Hilfe von CORS

Teillösung (mithilfe von Annotationen)

Sie können Annotationen verwenden: @CrossOrigin

Nachdem diese Annotation aktiviert ist, kreuzen Sie -Domänenprobleme können gelöst und hinzugefügt werden. Im Controller scheint es, dass alle Methoden in diesem Controller einer domänenübergreifenden Verarbeitung unterzogen wurden, und können auch separat zu einer Methode hinzugefügt werden, was darauf hinweist, dass nur diese Methode einer domänenübergreifenden Verarbeitung unterzogen wurde -Domänenverarbeitung

Wie SpringBoot globale und lokale domänenübergreifende Implementierungen implementiert

, aber der Standardwert ist *, d. h. Alle sind standardmäßig zulässig, was theoretisch nicht sehr sicher ist. Wenn das Projekt mehrere Controller oder mehrere Methoden enthält, ist die Verwendung von Anmerkungen sehr nutzlos . Wenn das einzelne Hinzufügen zu mühsam ist, können Sie zu diesem Zeitpunkt globale Annotationen verwenden.

Globale LösungWie SpringBoot globale und lokale domänenübergreifende Implementierungen implementiert

Prinzip: Erstellen Sie eine Konfigurationsklasse, aktivieren Sie die domänenübergreifende Registrierung und verwenden Sie die Annotation @Configuration, um diese Klasse einzufügen als Konfiguration in das Projekt einfügen

Wir können die Anforderungsmethode, die Domänennamenberechtigungen und die Anforderungen frei konfigurieren. Zeit, den domänenübergreifenden Bereich detaillierter steuern
package com.wyh.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Description: 解决全局跨域
 * @Author: 魏一鹤
 * @Date: 2022-11-30 22:44
 **/

@Configuration
public class CorsMapping implements WebMvcConfigurer {

    @Override
    /**
     * 重新跨域支持方法
     * CorsRegistry  开启跨域注册
     */
    public void addCorsMappings(CorsRegistry registry) {
        //addMapping 添加可跨域的请求地址
        registry.addMapping("/**")
                //设置跨域 域名权限 规定由某一个指定的域名+端口能访问跨域项目
                .allowedOrigins("*")
                //是否开启cookie跨域
                .allowCredentials(false)
                //规定能够跨域访问的方法类型
                .allowedMethods("GET","POST","DELETE","PUT","OPTIONS")
                //添加验证头信息  token
                //.allowedHeaders()
                //预检请求存活时间 在此期间不再次发送预检请求
                .maxAge(3600);
    }
}

Hinweis: Vergessen Sie nicht die Annotation @Configuration, sonst wird die Konfiguration wird ungültig! ! !

Das obige ist der detaillierte Inhalt vonWie SpringBoot globale und lokale domänenübergreifende Implementierungen implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen