【发布时间】:2019-05-17 11:12:32
【问题描述】:
我有一个 Spring Boot gradle 项目,在 build.gradle 依赖项中,我将 JSON Web Token 导入为:
compile group: 'io.jsonwebtoken', name: 'jjwt', version: '0.2'
按照 Spring Security 和视频教程,我构建了一个成功的身份验证方法。但是,当我在此方法中使用 Jwts 时,它不会提示我导入与视频教程中相同的文件,实际上也不会提示任何导入选项。具体来说,在视频中(使用了Maven),添加了import的提示:
import io.jsonwebtoken
然而,在我的应用程序中,我从未获得过此选项并手动导入或导入为 import io.jsonwebtoken.*;不起作用。正如班级所表明的那样:
import io cannot be resolved
同样,SignatureAlgorithm 方法不包含来自 JWT 的导入。
如何将 JSON Web 令牌成功导入我的 gradle 项目(或至少导入 io)。视频教程中的方法如下。 Jwts 是 web 令牌的实现,它是我遇到困难的包。
@Override
protected void successfulAuthentication(HttpServletRequest req,
HttpServletResponse res,
FilterChain chain,
Authentication auth) throws IOException, ServletException {
String userName = ((User) auth.getPrincipal()).getUsername();
String token = Jwts.builder()
.setSubject(userName)
.setExpiration(new Date(System.currentTimeMillis() + SecurityConstants.EXPIRATION_TIME))
.signWith(SignatureAlgorithm.HS512, SecurityConstants.TOKEN_SECRET)
.compact();
res.addHeader(SecurityConstants.HEADER_STRING, SecurityConstants.TOKEN_PREFIX + token);
}
我正在整理的项目本身在 Github 上,上面提到的课程在:
【问题讨论】:
-
你的项目在github吗?
-
@Dog,请检查并合并,我在您的项目中做了所需的更改:github.com/jwolfe890/SpringBootProject1/pull/1
标签: java spring-boot spring-security jwt