Java 在弹簧中使用JWT和x509
我必须在春季实现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并将其传递给用户,这样他就可以在请求所提到的
端点时展示自己/info
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());