JwtUtils 的集成

倒包:

<!-- JWT依賴(lài)--><dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version></dependency>

<!-- no more than 2.3.3--><dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.3.3</version></dependency>

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId></dependency>


工具類(lèi):

public class JwtUtils {

private static String signKey ="yixiatech";

private static Long expire =1626662400000L;

/**

? ? * 生成JWT令牌

? ? * @param claims JWT第二部分負(fù)載 payload 中存儲(chǔ)的內(nèi)容

? ? * @return

*/

? ? public static String generateJwt(Map claims){

String jwt =Jwts.builder()

.addClaims(claims)

.signWith(SignatureAlgorithm.HS256,signKey)

.setExpiration(new Date(System.currentTimeMillis() +expire))

.compact();

return jwt;

}

/**

? ? * 解析JWT令牌

? ? * @param jwt JWT令牌

? ? * @return JWT第二部分負(fù)載 payload 中存儲(chǔ)的內(nèi)容

? ? */

? ? public static Claims parseJWT(String jwt){

Claims claims =Jwts.parser()

.setSigningKey(signKey)

.parseClaimsJws(jwt)

.getBody();

return claims;

}

}

控制器代碼:

@Slf4j

@RestController

public class LoginController {

@Autowired

? ? private EmpService empService;

@PostMapping("/login")

public Result login(@RequestBody Emp emp){

Emp e =empService.login(emp);

log.info("員工登錄: {}",e);

//登錄成功,生成令牌,下發(fā)令牌

? ? ? ? if (e !=null){

Mapclaims =new HashMap<>();

claims.put("id",e.getEmpId());

claims.put("name",e.getName());

claims.put("username",e.getUsername());

String jwt =JwtUtils.generateJwt(claims);//jwt包含了當(dāng)前登錄的員工信息

? ? ? ? ? ? return Result.success(jwt);

}

//登錄失敗, 返回錯(cuò)誤信息

? ? ? ? return Result.error("用戶(hù)名或密碼錯(cuò)誤");

}

}

當(dāng)我們?cè)贔ilter類(lèi)上面加了@WebFilter注解之后,接下來(lái)我們還需要在啟動(dòng)類(lèi)上面加上一個(gè)注解@ServletComponentScan,通過(guò)這個(gè)@ServletComponentScan注解來(lái)開(kāi)啟SpringBoot項(xiàng)目對(duì)于Servlet組件的支持光稼。

具體操作的類(lèi)

import javax.servlet.*;

import javax.servlet.annotation.WebFilter;

import java.io.IOException;

@WebFilter(urlPatterns ="/*")

public class EmpFilter implements Filter {

@Override //初始化方法, 只調(diào)用一次

? ? public void init(FilterConfig filterConfig)throws ServletException {

System.out.println("init 初始化方法執(zhí)行了");

}

@Override //攔截到請(qǐng)求之后調(diào)用, 調(diào)用多次

? ? public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException,ServletException {

System.out.println("Demo 攔截到了請(qǐng)求...放行前邏輯");

chain.doFilter(request,response);

System.out.println("Demo 攔截到了請(qǐng)求...放行后邏輯");

}

@Override //銷(xiāo)毀方法, 只調(diào)用一次

? ? public void destroy() {

System.out.println("destroy 銷(xiāo)毀方法執(zhí)行了");

}

}

對(duì)象轉(zhuǎn)json

依賴(lài)

<!--fastJSON--><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version></dependency>

代碼

Result error = Result.error("NOT_LOGIN");

//手動(dòng)轉(zhuǎn)換 對(duì)象--json --------> 阿里巴巴fastJSON

String notLogin = JSONObject.toJSONString(error);


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市荣月,隨后出現(xiàn)的幾起案子乎折,更是在濱河造成了極大的恐慌,老刑警劉巖嗅定,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異番捂,居然都是意外死亡个唧,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)白嘁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)坑鱼,“玉大人,你說(shuō)我怎么就攤上這事絮缅÷沉ぃ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵耕魄,是天一觀的道長(zhǎng)画恰。 經(jīng)常有香客問(wèn)我,道長(zhǎng)吸奴,這世上最難降的妖魔是什么允扇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮则奥,結(jié)果婚禮上考润,老公的妹妹穿的比我還像新娘。我一直安慰自己读处,他們只是感情好糊治,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著罚舱,像睡著了一般井辜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上管闷,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天粥脚,我揣著相機(jī)與錄音,去河邊找鬼包个。 笑死刷允,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赃蛛。 我是一名探鬼主播恃锉,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼呕臂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起肪跋,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤歧蒋,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體谜洽,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡萝映,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了阐虚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片序臂。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖实束,靈堂內(nèi)的尸體忽然破棺而出奥秆,到底是詐尸還是另有隱情,我是刑警寧澤咸灿,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布构订,位于F島的核電站,受9級(jí)特大地震影響避矢,放射性物質(zhì)發(fā)生泄漏悼瘾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一审胸、第九天 我趴在偏房一處隱蔽的房頂上張望亥宿。 院中可真熱鬧,春花似錦砂沛、人聲如沸烫扼。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)材蛛。三九已至,卻和暖如春怎抛,著一層夾襖步出監(jiān)牢的瞬間卑吭,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工马绝, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留豆赏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓富稻,卻偏偏與公主長(zhǎng)得像掷邦,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子椭赋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容