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

Java jwt使用公鑰字符串驗(yàn)證解析token鎖方法詳解

 更新時(shí)間:2023年02月10日 10:51:42   作者:愛學(xué)習(xí)的大雄  
關(guān)于java獲取Token驗(yàn)證的問(wèn)題相信很多人都遇見過(guò),尤其是對(duì)剛接觸微信開發(fā)的人來(lái)說(shuō)確實(shí)有點(diǎn)棘手,下面這篇文章主要給大家介紹了關(guān)于Java中token驗(yàn)證解析的相關(guān)資料,需要的朋友可以參考下

引言

本文主要示例如何通過(guò)已知的公鑰(字符串),來(lái)使用java-jwt校驗(yàn)token鎖。

由于java-jwt中校驗(yàn)時(shí)所需要的公鑰是RSAPublicKey對(duì)象而我們目前的公鑰是字符串,所以我們需要進(jìn)行轉(zhuǎn)化,本篇文章主要就是記錄如何進(jìn)行這個(gè)轉(zhuǎn)化

如果需要了解公鑰、私鑰的概念,請(qǐng)百度其它文章。

代碼

<!-- java-jwt -->
<dependency>
    <groupId>com.auth0</groupId>
    <artifactId>java-jwt</artifactId>
    <version>4.2.1</version>
</dependency>
/**
 * 根據(jù)公鑰字符串生成PublicKey對(duì)象
 * @return
 * @throws NoSuchAlgorithmException
 * @throws InvalidKeySpecException
 */
private static PublicKey getPublicKey()
        throws NoSuchAlgorithmException, InvalidKeySpecException {
    String pem = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWCkZn1ksPM+DBLzgaffe2je6/Kr168fDI/CAM23Ardh4+w5yprtCmNfibCLcNZ66OzPC164p4ufboc9fxXqd5mv0ZtaHGG2pATH5e7z+Gla3Bd3QX8WqJi5LkAtsdP23IQqhz8UHA+Vmd6pTzobcQBhF1K7K/zcK9QDTFon4tCxL12wSOl40CDlWnaHortvljmJ5T3zD1iPjHjpVejI5YQReqxXEuqFVTqu2nhdTWAmfX8KrlVbPGPCevruKFmNvnl09N0Kk2CZGRlLq5aE7UZxH3GOkNWKkVWMO7tUgoJK9r8v/EIrIcuO5SX7RuyyhyY0/fsx3f+CTrUATkfgVwIDAQAB";
    X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(Base64.decodeBase64(pem));
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    PublicKey publicKey = keyFactory.generatePublic(pubKeySpec);
    System.out.println(publicKey);
    return publicKey;
}
/**
 * 校驗(yàn)token
 * @param token
 * @return
 * @throws Exception
 */
public static DecodedJWT verifierToken(String token)throws Exception{
    //其實(shí)按照規(guī)定只需要傳遞 publicKey 來(lái)校驗(yàn)即可,這可能是auth0 的缺點(diǎn)
    Algorithm algorithm = Algorithm.RSA256((RSAPublicKey) getPublicKey(),null);
    JWTVerifier verifier = JWT.require(algorithm)
            //.withIssuer(ISSUER)
            .build(); //Reusable verifier instance 可復(fù)用的驗(yàn)證實(shí)例
    DecodedJWT jwt = verifier.verify(token);
    return jwt;
}

測(cè)試

@SpringBootTest(classes = KeycloakdemoApplication.class)
@RunWith(SpringRunner.class)
public class DemoTest {
    @Test
    public void testGetInstance() throws Exception {
        DecodedJWT verify = JWTUtils.verifierToken("eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIxdGtoMFBXanE1SmpOalVjc1hNYnJ1TldQVngtM2tQekJpekJGTDZfUDFJIn0.eyJleHAiOjE2NzM0NTc3MjYsImlhdCI6MTY3MzQ1NzQyNiwiYXV0aF90aW1lIjoxNjczNDU2MTU1LCJqdGkiOiJiMDZlNDljNS1kMTk5LTQ4ZWItYWE4NS1iNWJjMTMxNDVhMWIiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODEvYXV0aC9yZWFsbXMvbXlSZWFsbSIsInN1YiI6ImI4ZTAwM2Y1LTIxNDktNDUwMC04ZTE1LTZkZTU1YWM1MGRmMyIsInR5cCI6IkJlYXJlciIsImF6cCI6Im15Y2xpZW50Iiwic2Vzc2lvbl9zdGF0ZSI6ImRlM2Q4ZjZhLTE4YzAtNGYzYS1hNmQwLWNlNTBjNmM2ZmNjMyIsImFjciI6IjAiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsiYWRtaW4iXX0sInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUiLCJzaWQiOiJkZTNkOGY2YS0xOGMwLTRmM2EtYTZkMC1jZTUwYzZjNmZjYzMiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6ImFkbWluIn0.sGblDdBIkwnDDUcGd7-2QlCeA17gnmuvXosqpZ0T_zGlKtr6Ta-z1QSgwdc8K5ivekyIQmcYAIh-eHmfVxjCLKZ6fR-AdTeqenXdkNJuMREzwKpnOFx1Wq2LZUb-hqWKJimBKi2iUPlu4ENAVbFOWxcMwIedySpN74RHF3yP4BKr4YfAmr5u9CSX3EYw0LMiMVlt6l_FKNssKnTLlBq0IPDlBdwV9D1l6qpDXu_uIbvUzb_w8rnSoUGMqqqxI-RNF6m5dit29KWinFfkat5-g-lvbiVz8l0wYfMBGb9ESwC0aXJARcEG7PdhtqYLPjsGFVrjqHMq1ci_BVivAt3Htw");
        System.out.println(verify);
        System.out.println(verify.getExpiresAt());
        System.out.println(verify.getClaim("scope"));
        System.out.println(verify.getExpiresAtAsInstant());
        System.out.println(verify.getClaims());
    }
}

到此這篇關(guān)于Java jwt使用公鑰字符串驗(yàn)證解析token鎖方法詳解的文章就介紹到這了,更多相關(guān)Java驗(yàn)證解析token鎖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何使用IntelliJ IDEA搭建MyBatis-Plus框架并連接MySQL數(shù)據(jù)庫(kù)

    如何使用IntelliJ IDEA搭建MyBatis-Plus框架并連接MySQL數(shù)據(jù)庫(kù)

    這篇文章主要介紹了如何使用IntelliJ IDEA搭建MyBatis-Plus框架并連接MySQL數(shù)據(jù)庫(kù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • 分享J2EE的13種核心技術(shù)

    分享J2EE的13種核心技術(shù)

    在本文中我將解釋支撐J2EE的13種核心技術(shù):JDBC, JNDI, EJBs, RMI, JSP, Java servlets, XML, JMS, Java IDL, JTS, JTA, JavaMail 和 JAF,對(duì)j2ee的13種核心技術(shù)感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11
  • Spring Boot與Spring Security的跨域問(wèn)題解決方案

    Spring Boot與Spring Security的跨域問(wèn)題解決方案

    跨域問(wèn)題是指在Web開發(fā)中,瀏覽器出于安全考慮,限制了不同域名之間的資源訪問(wèn),本文重點(diǎn)給大家介紹Spring Boot與Spring Security的跨域問(wèn)題解決方案,感興趣的朋友一起看看吧
    2023-09-09
  • IDEA 開發(fā)多項(xiàng)目依賴的方法(圖文)

    IDEA 開發(fā)多項(xiàng)目依賴的方法(圖文)

    這篇文章主要介紹了IDEA 開發(fā)多項(xiàng)目依賴的方法(圖文),本文講一下關(guān)于使用IntelliJ IDEA基于Maven創(chuàng)建多模塊項(xiàng)目的實(shí)際開發(fā),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • Spring框架基于注解的AOP之各種通知的使用與環(huán)繞通知實(shí)現(xiàn)詳解

    Spring框架基于注解的AOP之各種通知的使用與環(huán)繞通知實(shí)現(xiàn)詳解

    這篇文章主要介紹了Spring框架基于注解的AOP之各種通知的使用及其環(huán)繞通知,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-11-11
  • 基于jstree使用JSON數(shù)據(jù)組裝成樹

    基于jstree使用JSON數(shù)據(jù)組裝成樹

    這篇文章主要為大家詳細(xì)介紹了基于jstree使用JSON數(shù)據(jù)組裝成樹,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • JPA中@ElementCollection使用示例詳解

    JPA中@ElementCollection使用示例詳解

    在JPA中,@ElementCollection注解主要用于映射集合屬性,例如List、Set或數(shù)組等集合屬性,以及Map結(jié)構(gòu)的集合屬性,每個(gè)屬性值都有對(duì)應(yīng)的key映射,這篇文章主要介紹了JPA中@ElementCollection使用,需要的朋友可以參考下
    2023-11-11
  • SpringBoot異步任務(wù)實(shí)現(xiàn)下單校驗(yàn)庫(kù)存的項(xiàng)目實(shí)踐

    SpringBoot異步任務(wù)實(shí)現(xiàn)下單校驗(yàn)庫(kù)存的項(xiàng)目實(shí)踐

    在開發(fā)中,異步任務(wù)應(yīng)用的場(chǎng)景非常的廣泛,本文主要介紹了SpringBoot異步任務(wù)實(shí)現(xiàn)下單校驗(yàn)庫(kù)存的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Java ThreadLocal的使用詳解

    Java ThreadLocal的使用詳解

    ThreadLocal是線程私有的局部變量存儲(chǔ)容器,可以理解成每個(gè)線程都有自己專屬的存儲(chǔ)容器,用來(lái)存儲(chǔ)線程私有變量。ThreadLocal 在日常開發(fā)框架中應(yīng)用廣泛,但用不好也會(huì)出現(xiàn)各種問(wèn)題,本文就此講解一下。
    2021-05-05
  • java  Lock接口詳解及實(shí)例代碼

    java Lock接口詳解及實(shí)例代碼

    這篇文章主要介紹了java Lock接口詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01

最新評(píng)論

新野县| 尚义县| 德钦县| 邢台县| 南充市| 韩城市| 岚皋县| 石渠县| 密云县| 贵溪市| 高要市| 天祝| 淳化县| 中西区| 壤塘县| 大渡口区| 太谷县| 调兵山市| 长岭县| 乌拉特后旗| 吉首市| 鹤峰县| 霍州市| 武城县| 宿迁市| 封丘县| 新巴尔虎左旗| 新建县| 丰宁| 太谷县| 灌南县| 井研县| 麻栗坡县| 乌拉特前旗| 扎囊县| 金塔县| 襄城县| 京山县| 古田县| 灵川县| 韩城市|