私は次のようにメモリの事で作業してい:SpringでClientDetailsServiceConfigurerのJDBCを使用してクライアントを追加する方法は?
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.inMemory()
.withClient("clientapp")
.authorizedGrantTypes("password", "refresh_token")
.authorities("USER")
.scopes("read", "write")
.resourceIds(RESOURCE_ID)
.secret("123456");
}
私はJDBCの実装を使用したいと思います。このために、私は(MySQLを使用して)次の表作成しました:
-- Tables for OAuth token store
CREATE TABLE oauth_client_details (
client_id VARCHAR(255) PRIMARY KEY,
resource_ids VARCHAR(255),
client_secret VARCHAR(255),
scope VARCHAR(255),
authorized_grant_types VARCHAR(255),
web_server_redirect_uri VARCHAR(255),
authorities VARCHAR(255),
access_token_validity INTEGER,
refresh_token_validity INTEGER,
additional_information VARCHAR(4096),
autoapprove TINYINT
);
CREATE TABLE oauth_client_token (
token_id VARCHAR(255),
token BLOB,
authentication_id VARCHAR(255),
user_name VARCHAR(255),
client_id VARCHAR(255)
);
CREATE TABLE oauth_access_token (
token_id VARCHAR(255),
token BLOB,
authentication_id VARCHAR(255),
user_name VARCHAR(255),
client_id VARCHAR(255),
authentication BLOB,
refresh_token VARCHAR(255)
);
CREATE TABLE oauth_refresh_token (
token_id VARCHAR(255),
token BLOB,
authentication BLOB
);
CREATE TABLE oauth_code (
code VARCHAR(255),
authentication BLOB
);
を私は手動でMySQLのテーブルにクライアントを追加する必要がありますか?春は良いのテーブルに正しいものを挿入することを期待して
clients.jdbc(dataSource).withClient("clientapp")
.authorizedGrantTypes("password", "refresh_token")
.authorities("USER")
.scopes("read", "write")
.resourceIds(RESOURCE_ID)
.secret("123456");
が、それを行うにはいないようです:
は、私はこれを試してみました。なぜあなたはjdbc()
の後にさらにチェーンすることができますか?
私はあなたの答えに従っていましたが、私がそのアイデアを述べたとおりにサーバーを構成しました。しかし、私は次のエラーが発生しています。 {"timestamp":1458109110864、 "status":401、 "error": "Unauthorized"、 "message": "クラスパスリソースで定義された名前 'scopedTarget.clientDetailsService' springframework /セキュリティ/のOAuth2 /設定/注釈/設定/ ClientDetailsServiceConfiguration.class]:ファクトリメソッドを経由してビーンのインスタンス化に失敗しました。ネストされた例外はorg.springframework.beans.BeanInstantiationExceptionです: – Waruna
は[org.springframework.security.oauth2.providerをインスタンス化できませんでした。 ClientDetailsService]:ファクトリメソッド 'clientDetailsService'が例外をスローしました;ネストされた例外はorg.springframework.jdbc.BadSqlGrammarExceptionです:PreparedStatementCallback;不正なSQL文法[client_secret、resource_ids、scope、authorized_grant_types、web_server_redirect_uri、authority、access_token_validity、refresh_token_validity、additional_information、自動承認、クライアントID)の値(?、?、?、?、?、?、?、?、?、?、?)]; – Waruna
のネストされた例外はorg.h2.jdbc.JdbcSQLExceptionです:テーブル\ "OAUTH_CLIENT_DETAILS \"が見つかりません。 SQL文:\ ninsert oauth_client_detailsに(client_secret、resource_ids、スコープ、authorized_grant_types、web_server_redirect_uri、当局、access_token_validity、refresh_token_validity、additional_information、autoapprove、CLIENT_ID)の値(、、、、、、、、、????????? ?、?)[42102-190]」、 『パス』: 『/ OAuthの/トークン』} – Waruna