JWT生成token及报错解决方案

编程入门 行业动态 更新时间:2024-10-25 23:31:37

JWT生成token及报错解决方案

java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter

使用JWT生成token

@RestController
public class AutherController {

    @RequestMapping("/login")
    public BaseResultBean auther(@RequestBody User user, HttpServletResponse response){
        BaseResultBean bean = new BaseResultBean();
        if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){
            // 则认为登录成功,本代码的重点在于如何生成JWT,对于登录实现只是简单带过
            bean.setCode("1");
            bean.setMsg("login successful");
            Instant now = Instant.now();
            String jwt = Jwts.builder()
                    .setSubject("admin01") // 设置当前的用户是谁,可以传递任意的数据
                    .setIssuedAt(Date.from(now)) // 设置开始的时间
                    .setExpiration(Date.from(now.plusSeconds(3600))) // 从开始生效的日期开始往后顺延3600秒,即有效期
                    .claim("id",1) // 可以是任意内容,主要是键值对的形式,需要时取出即可
                    .claim("permissions","admin")
                    .signWith(SignatureAlgorithm.HS256,"shezhimima".getBytes()) // 设置签名的算法和秘钥值
                    .compact();
            System.out.println(jwt);
            // 将生成的JWT放在响应头返回
            response.addHeader("token",jwt);
        }else {
            bean.setCode("0");
            bean.setMsg("login failure");
        }
        return bean;
    }

}

通过Postman测试发现,token已经成功生成

java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter报错解决

我遇到这个问题的时候,查了好久都没解决,有人说是因为JDK版本太高了,我尝试降低JDK版本,可是依然不行。后来才发现,是缺少了jaxb-api依赖包,导入之后就解决了,成功生成token,希望可以帮到你。

<!-- https://mvnrepository/artifact/io.jsonwebtoken/jjwt -->
        <!-- 生成JWT的依赖 -->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.1</version>
        </dependency>

        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.1</version>
        </dependency>

更多推荐

JWT生成token及报错解决方案

本文发布于:2023-06-14 01:07:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1421393.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   解决方案   JWT   token

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!