最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring的@CrossOrigin注解使用與CrossFilter對(duì)象自定義詳解

 更新時(shí)間:2023年12月04日 09:41:18   作者:制造bug的鍵盤鋼琴師  
這篇文章主要介紹了Spring的@CrossOrigin注解使用與CrossFilter對(duì)象自定義詳解,跨域,指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本,它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制,所謂同源是指,域名,協(xié)議,端口均相同,需要的朋友可以參考下

一、跨域概念解析(@CrossOrigin)

跨域,指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。

所謂同源是指,域名,協(xié)議,端口均相同,不明白沒關(guān)系,舉個(gè)栗子:

  • //a.yagnxigua.com/index.html 調(diào)用 //a.yagnxigua.com/server.php (非跨域)
  • //www.123.com/index.html 調(diào)用 //www.456.com/server.php (主域名不同:123/456,跨域)
  • //a.yagnxigua.com/index.html 調(diào)用 //b.yagnxigua.com/server.php (子域名不同:abc/def,跨域)
  • //a.yagnxigua.com:8080/index.html 調(diào)用 /a.yagnxigua.com:8081/server.php (端口不同:8080/8081,跨域)
  • //a.yagnxigua.com/index.html 調(diào)用 https://a.yagnxigua.com/server.php (協(xié)議不同:http/https,跨域)

請(qǐng)注意:localhost和127.0.0.1雖然都指向本機(jī),但也屬于跨域,同理域名和域名對(duì)應(yīng)的ip也屬于跨域。

瀏覽器執(zhí)行javascript腳本時(shí),會(huì)檢查這個(gè)腳本屬于哪個(gè)頁面,如果不是同源頁面,就不會(huì)被執(zhí)行。

二、Spring Boot跨域(@CrossOrigin)

當(dāng)然這里雖然指SpringBoot但是SpringMVC也是一樣的,要求在Spring4.2及以上的版本

1、@CrossOrigin使用場景要求

  • jdk1.8+
  • Spring4.2+

2、@CrossOrigin源碼解析(網(wǎng)絡(luò)復(fù)制)

@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CrossOrigin {
    String[] DEFAULT_ORIGINS = { "*" };
    String[] DEFAULT_ALLOWED_HEADERS = { "*" };
    boolean DEFAULT_ALLOW_CREDENTIALS = true;
    long DEFAULT_MAX_AGE = 1800;
    /**
     * 同origins屬性一樣
     */
    @AliasFor("origins")
    String[] value() default {};
    /**
     * 所有支持域的集合,例如"http://domain1.com"。
     * <p>這些值都顯示在請(qǐng)求頭中的Access-Control-Allow-Origin
     * "*"代表所有域的請(qǐng)求都支持
     * <p>如果沒有定義,所有請(qǐng)求的域都支持
     * @see #value
     */
    @AliasFor("value")
    String[] origins() default {};
    /**
     * 允許請(qǐng)求頭重的header,默認(rèn)都支持
     */
    String[] allowedHeaders() default {};
    /**
     * 響應(yīng)頭中允許訪問的header,默認(rèn)為空
     */
    String[] exposedHeaders() default {};
    /**
     * 請(qǐng)求支持的方法,例如"{RequestMethod.GET, RequestMethod.POST}"}。
     * 默認(rèn)支持RequestMapping中設(shè)置的方法
     */
    RequestMethod[] methods() default {};
    /**
     * 是否允許cookie隨請(qǐng)求發(fā)送,使用時(shí)必須指定具體的域
     */
    String allowCredentials() default "";
    /**
     * 預(yù)請(qǐng)求的結(jié)果的有效期,默認(rèn)30分鐘
     */
    long maxAge() default -1;
}

三、@CrossOrigin使用

Spring Boot下的請(qǐng)求處理控制器

package com.example.demo.controller;
import com.example.demo.domain.User;
import com.example.demo.service.IUserFind;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
//實(shí)現(xiàn)跨域注解
//origin="*"代表所有域名都可訪問
//maxAge飛行前響應(yīng)的緩存持續(xù)時(shí)間的最大年齡,簡單來說就是Cookie的有效期 單位為秒
//若maxAge是負(fù)數(shù),則代表為臨時(shí)Cookie,不會(huì)被持久化,Cookie信息保存在瀏覽器內(nèi)存中,瀏覽器關(guān)閉Cookie就消失
@CrossOrigin(origins = "*",maxAge = 3600)
public class UserController {
    @Resource
    private IUserFind userFind;
    @GetMapping("finduser")
    public User finduser(@RequestParam(value="id") Integer id){
      .......
    }
}

到此這篇關(guān)于Spring的@CrossOrigin注解使用與CrossFilter對(duì)象自定義詳解的文章就介紹到這了,更多相關(guān)@CrossOrigin注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • json序列化時(shí)忽略值為null的字段2種方式實(shí)例

    json序列化時(shí)忽略值為null的字段2種方式實(shí)例

    這篇文章主要給大家介紹了關(guān)于json序列化時(shí)忽略值為null的字段的2種方式,當(dāng)對(duì)象中某個(gè)字段為null時(shí),我們希望將對(duì)象轉(zhuǎn)換成json時(shí)為null的字段不會(huì)被轉(zhuǎn)換到j(luò)son字符串,里面需要的朋友可以參考下
    2023-10-10
  • SpringBoot2.0 整合 Dubbo框架實(shí)現(xiàn)RPC服務(wù)遠(yuǎn)程調(diào)用方法

    SpringBoot2.0 整合 Dubbo框架實(shí)現(xiàn)RPC服務(wù)遠(yuǎn)程調(diào)用方法

    這篇文章主要介紹了SpringBoot2.0 整合 Dubbo框架 實(shí)現(xiàn)RPC服務(wù)遠(yuǎn)程調(diào)用 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • springboot2.3 整合mybatis-plus 高級(jí)功能及用法詳解

    springboot2.3 整合mybatis-plus 高級(jí)功能及用法詳解

    這篇文章主要介紹了springboot2.3 整合mybatis-plus 高級(jí)功能,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot生成二維碼的實(shí)現(xiàn)

    SpringBoot生成二維碼的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot生成二維碼的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 圖文詳解Java中的序列化機(jī)制

    圖文詳解Java中的序列化機(jī)制

    java中的序列化可能大家像我一樣都停留在實(shí)現(xiàn)Serializable接口上,對(duì)于它里面的一些核心機(jī)制沒有深入了解過。本文將通過示例帶大家深入了解Java中的序列化機(jī)制,需要的可以參考一下
    2022-10-10
  • Java中的枚舉enum詳細(xì)解讀

    Java中的枚舉enum詳細(xì)解讀

    這篇文章主要介紹了Java中的枚舉enum詳細(xì)解讀,當(dāng)我們使用enum關(guān)鍵字開發(fā)一個(gè)枚舉類時(shí),默認(rèn)會(huì)繼承Enum類,而且是一個(gè)final類,當(dāng)有多個(gè)枚舉對(duì)象時(shí),使用逗號(hào) ,隔開,最后一個(gè)用分號(hào);結(jié)尾,需要的朋友可以參考下
    2024-01-01
  • 異步線程traceId如何實(shí)現(xiàn)傳遞

    異步線程traceId如何實(shí)現(xiàn)傳遞

    文章介紹了如何在異步請(qǐng)求中傳遞traceId,通過重寫ThreadPoolTaskExecutor的方法和實(shí)現(xiàn)TaskDecorator接口來增強(qiáng)線程池,確保異步線程間的traceId同步
    2025-02-02
  • Springboot3利用redis生成唯一訂單號(hào)的實(shí)現(xiàn)示例

    Springboot3利用redis生成唯一訂單號(hào)的實(shí)現(xiàn)示例

    本文主要介紹了Springboot3利用redis生成唯一訂單號(hào)的實(shí)現(xiàn)示例,包括UUID、雪花算法和數(shù)據(jù)庫約束,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • Mybatis中如何映射mysql中的JSON字段

    Mybatis中如何映射mysql中的JSON字段

    在mapper.xml中,需要在字段映射時(shí)加入typeHandler,具體:<id?property="abnormalEigenList"?column="AbnormalEigen"?typeHandler="com.xxx.config.JsonHandler">,下面通過本文給大家介紹Mybatis中,映射mysql中的JSON字段,需要的朋友可以參考下
    2023-10-10
  • java中httpclient封裝post請(qǐng)求和get的請(qǐng)求實(shí)例

    java中httpclient封裝post請(qǐng)求和get的請(qǐng)求實(shí)例

    這篇文章主要介紹了java中httpclient封裝post請(qǐng)求和get的請(qǐng)求實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評(píng)論

改则县| 美姑县| 蒙自县| 新乐市| 平塘县| 石阡县| 巨鹿县| 竹溪县| 同德县| 衡水市| 安国市| 呼伦贝尔市| 田林县| 旬阳县| 和林格尔县| 聂荣县| 镇宁| 榆林市| 丽水市| 宜都市| 南部县| 错那县| 伊川县| 乡宁县| 安西县| 潮安县| 万荣县| 榕江县| 监利县| 交口县| 新津县| 化德县| 澄江县| 托克托县| 武清区| 贵港市| 邮箱| 临邑县| 蓬安县| 延边| 浠水县|