1

GrailsWebアプリケーションの特定のURLを公開する必要があります。ただし、OAuth2クライアントクレデンシャルフロー(grant_type)で保護する必要があります。正確には、外部エージェントは次のようなものにリクエストを送信します

http://server-url/oauth/token?client_id=clientId&client_secret=clientSecret&grant_type=client_credentials

access_tokenを取得します。次に、私のURL(保護されたリソース)は次のようなものでアクセス可能である必要があります

http://server-url/resource?access_token={access-token obtained before}

これまでの私のアプローチでは、このgrailsプラグイン(spring-security-oauth2-provider:http://grails.org/plugin/spring-security-oauth2-provider)を使用していました。

https://github.com/adaptivecomputing/grails-spring-security-oauth2-providerにあるドキュメントに従って、アクセス許可部分を設定できました(登録済みのクライアントはIDを指定することでアクセストークンを取得できますと秘密ですが、チュートリアルからは、特定のリソースを保護する方法を理解できません(アクセストークンのみを使用してクライアントへのアクセスを制限します)。

上記のドキュメントリンクは、アクセストークン配布の設定段階までしか言及しておらず、その後、ユーザーの承認に移行します(これは必要ありません)。

続行する方法に関するポインタがあれば便利です。または、要件を満たすための他のオプションに関する提案も歓迎します。

4

2 に答える 2

1

grailsプラグインは、Springセキュリティプラグインspring-security-oauthをラップしたものです。spring-security-oauthのドキュメントをご覧ください。すでにouath2の仕様に精通していることを前提としています。読んでいない場合は、ここにリンクの説明を入力してください。googleoauth2APIもgoogleドキュメントのサンプルです。使用しているプラ​​グインは、spring-security-oauthの最後のリリースに更新されていません。ご覧になりたい場合は、githubでフォークして更新しました。

于 2012-06-26T16:10:13.447 に答える
0

spring-security-coreを使用してリソースを保護できます。例:RequestmapにURLパスをリストできます。

new Requestmap(url: '/api/v1/states/**', configAttribute: 'ROLE_USER,ROLE_USER').save()
new Requestmap(url: '/api/v1/subscriptions/**', configAttribute: 'ROLE_USER,ROLE_USER').save()
new Requestmap(url: '/api/v1/surveys/**', configAttribute: 'ROLE_USER,ROLE_USER').save()

grailsプラグイン「spring-security-oauth2-provider:1.0.0.M5.1」でテストしました。

于 2013-01-08T19:33:59.297 に答える