9

既存の例 - Tonr2 と Sparklr2を変更しようとしています。また、Spring Boot Spring Boot OAuth2に基づいてこのチュートリアルを見ました。Tonr2 の例のようにアプリケーションをビルドしようとしましたが、最初のログイン (tonr2 で) はありません。Sparklr2 側で必要な認証は 1 つだけです。私はこれをします:

@Bean
    public OAuth2ProtectedResourceDetails sparklr() {
        AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails();
        details.setId("sparklr/tonr");
        details.setClientId("tonr");
        details.setTokenName("oauth_token");
        details.setClientSecret("secret");
        details.setAccessTokenUri(accessTokenUri);
        details.setUserAuthorizationUri(userAuthorizationUri);
        details.setScope(Arrays.asList("openid"));
        details.setGrantType("client_credentials");
        details.setAuthenticationScheme(AuthenticationScheme.none);
        details.setClientAuthenticationScheme(AuthenticationScheme.none);
        return details;
    }

しかし、私は持っていAuthentication is required to obtain an access token (anonymous not allowed)ます。この質問をチェックしました。もちろん、私のユーザーは匿名です。Sparklr2 にログインしたいのです。また、この Bean の設定のさまざまな組み合わせを試しましたが、何もうまくいきませんでした。修正方法は?私が望むようにそれを機能させるにはどうすればよいですか?

4

2 に答える 2

0

古い投稿...

例外は実際に AccessTokenProviderChain からスローされますが、Spring セキュリティ フィルターが間違った順序で呼び出したときに発生します。OpenIdAuthenticationFilter が OAuth2ClientContextFilter の後に呼び出していることを確認してください。

于 2018-12-05T14:08:00.447 に答える