SpringCloud Zuul過(guò)濾器實(shí)現(xiàn)登陸鑒權(quán)代碼實(shí)例
1.新建一個(gè)filter‘包
2.新建一個(gè)類,實(shí)現(xiàn)ZuulFilter,重寫(xiě)里面的方法
3.在頂部類添加注解,@Component,讓Spring掃描
/**
* 登陸過(guò)濾器
*/
@Component
public class LoginFilter extends ZuulFilter {
@Override
public String filterType() { //前置過(guò)濾器
return PRE_TYPE;
}
@Override
public int filterOrder() { //過(guò)濾器順序,越小越先執(zhí)行
return 3;
}
@Override
public boolean shouldFilter() { //過(guò)濾器是否生效
RequestContext requestContext = RequestContext.getCurrentContext();
HttpServletRequest request = requestContext.getRequest();
System.out.println(request.getRequestURI());
System.out.println(request.getRequestURL());
if ("/apizuul/order/api/v1/order/save".equalsIgnoreCase(request.getRequestURI())){ //攔截
return true;
}
return false;
}
/**
* 業(yè)務(wù)邏輯
* @return
* @throws ZuulException
*/
@Override
public Object run() throws ZuulException {
System.out.println("攔截...");
RequestContext requestContext = RequestContext.getCurrentContext();
HttpServletRequest request = requestContext.getRequest();
String token = request.getHeader("token");
if (StringUtils.isBlank(token)){
token = request.getParameter("token");
}
//登陸校驗(yàn)邏輯 jwt生成token
if (StringUtils.isBlank(token)){
requestContext.setSendZuulResponse(false); //不會(huì)往下執(zhí)行
requestContext.setResponseStatusCode(HttpStatus.UNAUTHORIZED.value());
}
return null;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot異步Async使用Future與CompletableFuture區(qū)別小結(jié)
本文主要介紹了SpringBoot異步Async使用Future與CompletableFuture區(qū)別小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Spring中@Autowired @Resource @Inject三個(gè)注解有什么區(qū)別
在我們使用Spring框架進(jìn)行日常開(kāi)發(fā)過(guò)程中,經(jīng)常會(huì)使用@Autowired, @Resource, @Inject注解來(lái)進(jìn)行依賴注入,下面來(lái)介紹一下這三個(gè)注解有什么區(qū)別2023-03-03
springboot+redis 實(shí)現(xiàn)分布式限流令牌桶的示例代碼
這篇文章主要介紹了springboot+redis 實(shí)現(xiàn)分布式限流令牌桶 ,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Java實(shí)現(xiàn)通過(guò)IP獲取IP歸屬地的方法(離線+在線)
我們都知道安全攻擊都是在某臺(tái)客戶機(jī)上執(zhí)行某些惡意操作致使服務(wù)端響應(yīng)異常崩潰亦或響應(yīng)數(shù)據(jù)被篡改,首先我想到的是對(duì)訪問(wèn)的web端做一個(gè)IP的校驗(yàn),那么我們首先得知道客戶端的IP是多少,接下來(lái)此文重點(diǎn)介紹如何獲得,需要的朋友可以參考下2023-10-10
基于Java SWFTools實(shí)現(xiàn)把pdf轉(zhuǎn)成swf
這篇文章主要介紹了基于Java SWFTools實(shí)現(xiàn)把pdf轉(zhuǎn)成swf,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Java隨手筆記8之包、環(huán)境變量和訪問(wèn)控制及maven profile實(shí)現(xiàn)多環(huán)境打包
這篇文章主要介紹了Java隨手筆記8之包、環(huán)境變量和訪問(wèn)控制及maven profile實(shí)現(xiàn)多環(huán)境打包的相關(guān)資料,需要的朋友可以參考下2015-11-11

