0

このアプリでは、check_token エンドポイントをロックダウンして、クライアント資格情報を使用して認証されたクライアントのみがトークンの有効性を確認できるようにします。

ドキュメントには、使用時に式ハンドラーがデフォルトで有効になると記載@EnableResourceServerされており、xml を使用して式の処理を設定する方法がいくつか説明されています。java configを使用して以下の式を評価するにはどうすればよいですか?

@Configuration
@EnableAuthorizationServer
public class OAuth2AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {

    ...

    @Override
    public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
        security.checkTokenAccess("#oauth2.isClient()");
    }

    ...
}
4

1 に答える 1

2

以下はきれいではありませんが、うまくいくようです。

@EnableGlobalAuthentication
@Configuration
//@EnableAuthorizationServer
@Import({OAuth2AuthorizationServerConfiguration.SecurityConfiguration.class, AuthorizationServerEndpointsConfiguration.class})
public class OAuth2AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {


    @Configuration
    public static class SecurityConfiguration extends AuthorizationServerSecurityConfiguration {

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().expressionHandler(new OAuth2WebSecurityExpressionHandler());
            super.configure(http);
        }
    }

AuthorizationServerSecurityConfigurationHttpSecurity式ハンドラを挿入する必要があるオブジェクトへのアクセスを提供します。

手順:

  • サブクラスAuthorizationServerSecurityConfiguration化して式ハンドラーを設定する
  • 注釈をドロップします@EnableAuthorizationServer(インポートも行うためAuthorizationServerSecurityConfiguration
  • の新しいサブクラスをインポートするAuthorizationServerSecurityConfiguration
  • インポートAuthorizationServerEndpointsConfiguration(最初にインポートされたのは@EnableAuthorizationServer
于 2016-06-23T02:07:57.707 に答える