認可サーバーとリソースサーバーが1つあります。私は認可サーバーでアクセストークンを作成していて、oauth2のRemoteTokenServicesを使用してリソースサーバーで使用しようとしていますが、内部では/ oauth/check_tokenにアクセスしてトークンの存在と期限切れのみを確認します。しかし、access_tokenに対してロール/スコープを指定したエンドポイントに対するロール/スコープはチェックしません。oauth/check_tokenは、エンドポイントに関連付けられたロール/スコープを確認しません。
@FrameworkEndpoint
public class CheckTokenEndpoint {
@RequestMapping(value = "/oauth/check_token")
@ResponseBody
public Map<String, ?> checkToken(@RequestParam("token") String value) {
OAuth2AccessToken token = resourceServerTokenServices.readAccessToken(value);
if (token == null) {
throw new InvalidTokenException("Token was not recognised");
}
if (token.isExpired()) {
throw new InvalidTokenException("Token has expired");
}
OAuth2Authentication authentication = resourceServerTokenServices.loadAuthentication(token.getValue());
Map<String, ?> response = accessTokenConverter.convertAccessToken(token, authentication);
return response;
}
}
上記のコードスニペットはCheckTokenEndpoint.javaのものです。 ロール/スコープベースの認可も達成する方法はありますか?
@DaveSyer:ここでお手伝いできますか? – Dhairyashil
私は現時点で同様の問題に取り組んでいます。私はxmlベースの設定をしています。私は明日私の所見を掲載する(同様の問題を抱えている人には役に立つかもしれない) – Raf