小编Ale*_*tis的帖子

如何在 Spring 安全性中刷新令牌

这一行:

Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token).getBody();
Run Code Online (Sandbox Code Playgroud)

当我的 jwt 令牌过期时抛出这样的错误:

JWT 于 2020-05-13T07:50:39Z 过期。当前时间:2020-05-16T21:29:41Z。

更具体地说,正是这个函数抛出了“ExpiredJwtException”异常: parseClaimsJws() 函数

我该如何处理这些异常?我是否应该捕获它们并将错误消息发送回客户端并强制它们重新登录?

如何实现刷新令牌功能?我在后端使用 Spring 和 mysql,在前端使用 vuejs。

我生成这样的初始令牌:

   @Override
        public JSONObject login(AuthenticationRequest authreq) {
            JSONObject json = new JSONObject();
    
            try {
                Authentication authentication = authenticationManager.authenticate(
                        new UsernamePasswordAuthenticationToken(authreq.getUsername(), authreq.getPassword()));
    
                UserDetailsImpl userDetails = (UserDetailsImpl) authentication.getPrincipal();
                List<String> roles = userDetails.getAuthorities().stream().map(item -> item.getAuthority())
                        .collect(Collectors.toList());
    
                if (userDetails != null) {
    
                    final String jwt = jwtTokenUtil.generateToken(userDetails);
    
    
                    JwtResponse jwtres = new JwtResponse(jwt, userDetails.getId(), userDetails.getUsername(),
                            userDetails.getEmail(), roles, jwtTokenUtil.extractExpiration(jwt).toString());
    
                    return json.put("jwtresponse", jwtres);
                }
            } catch (BadCredentialsException ex) {
                json.put("status", "badcredentials"); …
Run Code Online (Sandbox Code Playgroud)

spring spring-security access-token jwt refresh-token

5
推荐指数
1
解决办法
1万
查看次数

Java:如果 Character 是包装类,为什么“Character newChar = 'c'”有效?为什么它不需要构造函数?

这些对我来说都很好:

示例 1:

Character newCharacter = 'c';
Run Code Online (Sandbox Code Playgroud)

示例 2:

Character newCharacterOther = new Character('c');
Run Code Online (Sandbox Code Playgroud)

但有什么区别呢?

在第一个示例中,Character 类如何知道将其值设置为“c”而不需要构造函数?

它是否在幕后使用工厂方法?有人可以向我解释编译器如何知道要做什么吗?

我在java.lang 中提供了Character.class 的构造函数的图像。

它甚至说它已被弃用,不应该像那样访问它,但我仍然有点困惑。

显示 Java 类的构造函数的图像

java constructor factory java.lang.class java.lang

3
推荐指数
1
解决办法
60
查看次数

Spring JPA 中的@Entity 是什么?

具体来说,我指的是 javax.persistence.Entity。

根据当我将鼠标悬停在上面时显示的文档,在 VS Code 中它指出:

指定该类是一个实体。此注释应用于实体类。

类是实体对于 Spring JPA 意味着什么?

java spring entity jpa spring-boot

3
推荐指数
1
解决办法
4082
查看次数

当想要将 HTML 附加到文档时,使用 insertAdjacentHTML 是否存在安全风险?

我最近发现使用 setInnerHtml 并不是一个好的做法,因为存在很多与之相关的性能和安全问题。所以我想知道用“insertAdjacentHTML”替换 setInnerHtml 是否可以?

另外,我应该如何完全填满桌子?就像删除父元素的子元素(表主体)并使用 insertAdjacentHTML 重新填充它一样。

我目前正在做什么

document.getElementById('myid').innerHTML = "";
const elm = document.getElementById("myid");
elm.insertAdjacentHTML('beforeend', '<div></div>');
Run Code Online (Sandbox Code Playgroud)

由于我仍在使用innerHTML,这种做法是否违背了使用insertAdjacentHTML的目的。当我用innerHTML将其设置为空时,我没有进行任何复杂的DOM操作,不是吗?

html javascript dom innerhtml insertadjacenthtml

2
推荐指数
1
解决办法
2065
查看次数