在JHipster

时间:2016-10-20 10:55:16

标签: java authentication spring-security spring-boot jhipster

我的主要目标是在JHipster应用程序中以不同方式验证某些API。

现在我正在使用JHipster内置的无状态JWT身份验证机制,它运行得很好。我想创建一个API子集,其中需要API密钥来验证租户(而不是用户)而不是JWT。

我试图用this方法添加多个HttpSecurity实例(order(1)是我的自定义配置,order(2)是jwt)。我自己的自定义AuthorizationProvider的身份验证方法触发,并返回一个令牌,但我仍然收到一条JWT错误消息。

尽管我的身份验证成功,但JWTFilter不应该被调用。

我错过了什么?

我的日志:

[nio-8080-exec-3] c.s.b.s.i.IntegrationAuthFilter          : Request is to process authentication
[nio-8080-exec-3] c.s.b.s.i.IntegrationAuthFilter          : Authentication success. Updating SecurityContextHolder to contain: com.example.app.security.integration.IntegrationAuthToken@ffffffc4: Principal: asd; Credentials: [PROTECTED]; Authenticated: true; Details: null; Not granted any authorities
[nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception

io.jsonwebtoken.MalformedJwtException: JWT strings must contain exactly 2 period characters. Found: 0
    at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:223)
    at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:458)
    at io.jsonwebtoken.impl.DefaultJwtParser.parseClaimsJws(DefaultJwtParser.java:518)
    at com.example.app.security.jwt.TokenProvider.validateToken(TokenProvider.java:98)
    at com.example.app.security.jwt.JWTFilter.doFilter(JWTFilter.java:40)

0 个答案:

没有答案