首页 > 解决方案 > 在 Spring 中使用 JWT 和 x509

问题描述

我必须在 Spring 中同时实现 JWT 和 x509。基本上情况是:

我不想在每个请求中都要求 x509 证书 - 就在 JWT 到期之后或缺少此类证书的情况下

现在,我已经分别实现了获取 JWT(工作正常)和使用 x509(工作正常)对用户进行身份验证,但是我在将这两个东西连接起来以按预期协同工作时遇到了麻烦。

智威汤逊部分:

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());

标签: javaspring-securityjwtx509certificatex509

解决方案


推荐阅读