Java 在弹簧中使用JWT和x509

Java 在弹簧中使用JWT和x509,java,spring-security,jwt,x509certificate,x509,Java,Spring Security,Jwt,X509certificate,X509,我必须在春季实现JWT和x509。基本情况是: 用户试图输入一个端点,比如说/info,要做到这一点,他应该提供JWT,如果他没有任何端点(或者该端点无效),则必须提供一个x509证书来识别他自己 在确保这样的用户确实存在之后,将生成新的JWT并将其传递给用户,这样他就可以在请求所提到的/info端点时展示自己 我不想在每次请求中都要求x509证书——就在JWT到期之后或者在缺少此类证书的情况下 现在,我已经分别实现了获取JWT(正常工作)和使用x509(正常工作)对用户进行身份验证,但我在

我必须在春季实现JWT和x509。基本情况是:

  • 用户试图输入一个端点,比如说
    /info
    ,要做到这一点,他应该提供JWT,如果他没有任何端点(或者该端点无效),则必须提供一个x509证书来识别他自己
  • 在确保这样的用户确实存在之后,将生成新的JWT并将其传递给用户,这样他就可以在请求所提到的
    /info
    端点时展示自己
我不想在每次请求中都要求x509证书——就在JWT到期之后或者在缺少此类证书的情况下

现在,我已经分别实现了获取JWT(正常工作)和使用x509(正常工作)对用户进行身份验证,但我在连接这两件事情以实现预期目标时遇到了麻烦

JWT部分:

http
   .cors()
   .and().csrf().disable()
   .exceptionHandling().authenticationEntryPoint(authEntryPointJwt).and()
   .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
   .and()
   .addFilter(new JwtAuthenticationFilter(authenticationManager()))
   .addFilter(new JwtAuthorizationFilter(authenticationManager(), userService))
   .authorizeRequests()
   .antMatchers("/auth/**").permitAll()
   .antMatchers("/**").authenticated();
x509部分:

http
   .authorizeRequest()
   .anyRequest()
   .authenticated()
   .and()
   .x509()
   .subjectPrincipalRegex("XX=(.*?)")
   .userDetailsService(userDetailsService());