国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SpringBoot JWT Token 跨域 Preflight response is not

solocoder / 1575人閱讀

摘要:一實現校驗實現校驗,可以通過或者,兩種方式都可以,在最外層,請求首先會通過,允許請求才會通過。

一、Springboot實現token校驗

SpringBoot實現token校驗,可以通過Filter或者HandlerInterceptor,兩種方式都可以,Filter在最外層,請求首先會通過Filter,filter允許請求才會通過Intercept。

下面以HandlerInterceptor實現為例

1.實現HandlerInterceptor,攔截請求校驗token

public class AuthenticationInterceptor implements HandlerInterceptor {
    private static final String URI_PASS_TOKEN = "/user/login";

    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object object) throws Exception {
        log.info("authentication interceptor preHandle  path:{} uri:{}",httpServletRequest.getServletPath(),httpServletRequest.getRequestURI());

//        if ("OPTIONS".equalsIgnoreCase(httpServletRequest.getMethod())) {
//            return true;
//        }

        if (httpServletRequest.getRequestURI().endsWith(URI_PASS_TOKEN)) {
            return true;
        }
        //從http header里面獲取token
        String token = httpServletRequest.getHeader("token");
        if (StringUtils.isEmpty(token)) {
            throw new AuthenticationException(CODE_AUTHENTICATION_FAILED,"token is empty");
        }

        Algorithm algorithm = Algorithm.HMAC256(JwtConstant.TOKEN_CREATE_SECRET);
        JWTVerifier verifier = JWT.require(algorithm).build();
        try {
            verifier.verify(token);
        }catch (Exception ex){
            throw new AuthenticationException(CODE_AUTHENTICATION_FAILED,ex.getMessage());
        }
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}

2.Configuration配置,實現自動注入

@Configuration
public class InterceptorConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(authenticationInterceptor())
                .addPathPatterns("/**");
    }

    @Bean
    public AuthenticationInterceptor authenticationInterceptor() {
        return new AuthenticationInterceptor();
    }
}
二、前端調用 跨域 Preflight response is not successful

通過單元測試、PostMan測試都可以調同,但是vue前端怎么都無法調用,錯誤如下:

參考https://segmentfault.com/a/11...
發現是瀏覽器發出的OPTIONS預檢請求被HandlerInterceptor攔截了,因此在HandlerInterceptor添加如下代碼:

        if ("OPTIONS".equalsIgnoreCase(httpServletRequest.getMethod())) {
            return true;
        }

對于options的請求不進行token檢測即可

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74120.html

相關文章

  • 使用Spring Security中遇到的Preflight請求和跨域的問題

    摘要:首先遇到的就是跨域問題,但是在攜帶請求過程中出現了服務端獲取不到情況。瀏覽器將請求分成兩類簡單請求和非簡單請求。而瀏覽器對這兩種請求的處理是不一樣的。 背景 在一個前后端分離開發的項目中,使用SpringSecurity做安全框架,用JWT來實現權限管理提升RESTful Api的安全性。首先遇到的就是跨域問題,但是在攜帶jwt請求過程中出現了服務端獲取不到jwt情況。 跨域問題 在開...

    shengguo 評論0 收藏0
  • 使用Spring Security中遇到的Preflight請求和跨域的問題

    摘要:首先遇到的就是跨域問題,但是在攜帶請求過程中出現了服務端獲取不到情況。瀏覽器將請求分成兩類簡單請求和非簡單請求。而瀏覽器對這兩種請求的處理是不一樣的。 背景 在一個前后端分離開發的項目中,使用SpringSecurity做安全框架,用JWT來實現權限管理提升RESTful Api的安全性。首先遇到的就是跨域問題,但是在攜帶jwt請求過程中出現了服務端獲取不到jwt情況。 跨域問題 在開...

    EscapedDog 評論0 收藏0
  • 跨域相關問題

    摘要:最近遇到了一個項目,第一次和其他組的后端合作,由于域名也是新申請的,所以在合作過程中遇到了很多跨域的問題。沒有使用的,就是作為后端解決一下這個跨域解決代碼登錄失效問題一域名不一致的跨域提示現象解決辦法設置。 最近遇到了一個項目,第一次和其他組的后端合作,由于域名也是新申請的,所以在合作過程中遇到了很多跨域的問題。現在自己做一下模擬總結。這里我的前端使用的vue,后端使用的express...

    Lycheeee 評論0 收藏0
  • 記錄我開發工作中遇到HTTP跨域和OPTION請求的一個坑

    摘要:我通過這篇文章把今天工作中遇到的跨域和請求的一個坑記錄下來。預檢請求機制的使用,是為了避免跨域請求對服務器的用戶數據產生未預期的影響。我使用了認證方式,這種方式不會造成該請求成為一個需要預檢的請求,所以最后跨域成功了。 我通過這篇文章把今天工作中遇到的HTTP跨域和OPTION請求的一個坑記錄下來。 場景是我需要在部署在域名a的Web應用里用JavaScript去消費一個部署在域名b的...

    HollisChuang 評論0 收藏0
  • 基于Shiro,JWT實現微信小程序登錄完整例子

    摘要:小程序官方流程圖如下,官方地址如果此圖理解不清楚的地方也可參看我的博客本文是對接微信小程序自定義登錄的一個完整例子實現,技術棧為。調用微信接口獲取和根據和自定義登陸態返回自定義登陸態給小程序端。 小程序官方流程圖如下,官方地址 : https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login....

    cfanr 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<