spring oauth2 (バージョン 1.0.4) を使用して oAuth サーバーをセットアップしました。クライアント認証情報付与タイプのアクセス トークンを取得しようとすると、複数の同時リクエストが行われると null ポインター エラーが発生します。
スタック トレースのスニペットを含めます。
java.lang.NullPointerException
org.springframework.security.oauth2.provider.token.DefaultAuthenticationKeyGenerator.extractKey(DefaultAuthenticationKeyGenerator.java:43)
org.springframework.security.oauth2.provider.token.JdbcTokenStore.getAccessToken(JdbcTokenStore.java:121)
org.springframework.security.oauth2.provider.token.DefaultTokenServices.createAccessToken(DefaultTokenServices.java:75)
com.marketo.identity.data.impl.IdentityDefaultTokenServices.createAccessToken(IdentityDefaultTokenServices.java:45)
org.springframework.security.oauth2.provider.token.AbstractTokenGranter.getAccessToken(AbstractTokenGranter.java:68)
org.springframework.security.oauth2.provider.token.AbstractTokenGranter.grant(AbstractTokenGranter.java:60)
org.springframework.security.oauth2.provider.client.ClientCredentialsTokenGranter.grant(ClientCredentialsTokenGranter.java:41)
org.springframework.security.oauth2.provider.CompositeTokenGranter.grant(CompositeTokenGranter.java:38)
org.springframework.security.oauth2.provider.endpoint.TokenEndpoint.getAccessToken(TokenEndpoint.java:100)
sun.reflect.GeneratedMethodAccessor167.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:601)
リクエストは次のようなものです:
http://oauth-server-name/oauth/token?client_id={client_id}&client_secret={client_secret}&grant_type=client_credentials
この問題は、単一のリクエストが行われた場合 (または同時リクエストの数が少ない場合) には発生しません。ある種の競合状態?