Spring Authorization Server 1.0.1集成JPA认证报错求助
我正在基于Spring Boot 3和JPA开发Spring Authorization Server 1.0.1,认证时出现以下错误:
No AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken
我的AuthorizationServerConfig配置代码如下:
@Configuration(proxyBeanMethods = false) public class AuthorizationServerConfig { @Autowired JpaRegisteredClientRepository jpaRegisteredClientRepository; private static final Logger LOGGER = LoggerFactory.getLogger(AuthorizationServerConfig.class); @Bean @Order(Ordered.HIGHEST_PRECEDENCE) /** * A Spring Security filter chain for the Protocol Endpoints. * aus Doku übernommen (1) */ public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception { OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http); http.getConfigurer(OAuth2AuthorizationServerConfigurer.class) .oidc(Customizer.withDefaults()); // Enable OpenID Connect 1.0 http // Redirect to the login page when not authenticated from the // authorization endpoint .exceptionHandling((exceptions) -> exceptions .authenticationEntryPoint( new LoginUrlAuthenticationEntryPoint("\/login")) ) // Accept access tokens for User Info and/or Client Registration .oauth2ResourceServer(OAuth2ResourceServerConfigurer::jwt); return http.build(); } @Bean @Order(2) /** * A Spring Security filter chain for authentication. */ public SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests((authorize) -> authorize .anyRequest().authenticated() ) // Form login handles the redirect to the login page from the // authorization server filter chain .formLogin(Customizer.withDefaults()); return http.build(); } @Bean /** * An instance of UserDetailsService for retrieving users to authenticate. */ public UserDetailsService userDetailsService() { UserDetails userDetails = User.withDefaultPasswordEncoder() .username("utilo") .password("utilo") .roles("USER") .build(); return new InMemoryUserDetailsManager(userDetails); } /** * An instance of RegisteredClientRepository for managing clients. * in Doku vorhanden (4) */ @Bean @Primary public RegisteredClientRepository registeredClientRepository() { RegisteredClient client = jpaRegisteredClientRepository.findByClientId("utilo-client"); List<RegisteredClient> registrations = new Vector<RegisteredClient>(); registrations.add(client); InMemoryRegisteredClientRepository inMemoryRegisteredClientRepository = new InMemoryRegisteredClientRepository(registrations); return inMemoryRegisteredClientRepository; } /* * Generate the private/public key pair for signature of JWT. */ @Bean /** * An instance of com.nimbusds.jose.jwk.source.JWKSource for signing access tokens. */ public JWKSource<SecurityContext> jwkSource() { KeyPair keyPair = generateRsaKey(); RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); RSAKey rsaKey = new RSAKey.Builder(publicKey) .privateKey(privateKey) .keyID(UUID.randomUUID().toString()) .build(); JWKSet jwkSet = new JWKSet(rsaKey); return new ImmutableJWKSet<>(jwkSet); } /** * An instance of java.security.KeyPair with keys generated on startup used to create the JWKSource above. */ private static KeyPair generateRsaKey() { KeyPair keyPair; try { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(2048); keyPair = keyPairGenerator.generateKeyPair(); } catch (Exception ex) { throw new IllegalStateException(ex); } return keyPair; } @Bean /** * An instance of JwtDecoder for decoding signed access tokens. */ public JwtDecoder jwtDecoder(JWKSource<SecurityContext> jwkSource) { return OAuth2AuthorizationServerConfiguration.jwtDecoder(jwkSource); } @Bean /** * An instance of AuthorizationServerSettings to configure Spring Authorization Server. */ public AuthorizationServerSettings authorizationServerSettings() { return AuthorizationServerSettings.builder().build(); } @Bean PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } }
若需要更多用于排查问题的类文件,请告知。
内容的提问来源于stack exchange,提问作者Christian Osterrieder
相关产品推荐
相关产品推荐

