Android OAuth 改造访问令牌请求

2024-01-27

谁能告诉我将以下代码转换为改造的确切格式

curl -X POST -d "grant_type=password&username=admin&password=admin&scope=read+write" -u"clientId:clientSecret" http://myserver/o/token/

我已经尝试过类似的方法,但它不起作用

@FormUrlEncoded
@POST("/o/token/")
AccessTokenResponse getToken(@Field("client_id") String client_id, @Field("client_secret") String client_secret,
    @Field("grant_type") String grant_type, @Field("username") String username,
    @Field("password") String password, @Field("scope") String scope);

客户端凭据应通过身份验证基本认证 http://en.wikipedia.org/wiki/Basic_access_authentication。即带有标题

Authorization: Basic base64encode(clientId:clientSecret)

where base64encode(clientId:clientSecret)是实际的base64编码字符串clientId:clientSecret。因此,要更新您的界面,它可能看起来更像

public interface OAuthTokenService {

    @POST("/api/token")
    @FormUrlEncoded
    @Headers({
        "Accept: application/json"
    })
    AccessTokenResponse getAccessToken(@Field("grant_type") String grantType,
                                       @Field("username") String username,
                                       @Field("password") String password,
                                       @Header("Authorization") String authorization);    
}

然后要设置标题,请执行类似的操作

public class Main {

    public static void main(String[] args) {
        RestAdapter restAdapter = new RestAdapter.Builder()
                .setLogLevel(RestAdapter.LogLevel.FULL)
                .setEndpoint("http://localhost:8080")
                .setConverter(new JacksonConverter())
                .build();

        OAuthTokenService service = restAdapter.create(OAuthTokenService.class);
        byte[] credentials = "clientId:clientSecret".getBytes();
        String basicAuth = "Basic " + Base64.getEncoder().encodeToString(credentials);

        AccessTokenResponse response = service
                .getAccessToken("password", "admin", "admin", basicAuth);
        System.out.println(response.getAccessToken());
    }
}

请注意,上面使用 Java 8java.util.Base64班级。您可能没有使用 Java 8,在这种情况下,您将需要找到不同的编码器。

我也使用Jackson进行转换,只是因为我不使用Gson。以上内容已经过测试,应该也适合您。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android OAuth 改造访问令牌请求 的相关文章

  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • 在包“android”中找不到属性“backgroundTint”的资源标识符

    我发现了一些视图 xml 属性 例如backgroundTint backgroundTintMode 但是当我使用它作为视图属性定义时 Eclipse 显示错误 No resource identifier found for attri
  • Sqlite数据库生命周期?关闭应用程序后它会被删除吗?

    我正在遵循一个简单的教程 该教程创建一个从 SQLiteOpenHelper 扩展的类 并创建一个包含一个表和 5 行的数据库 好的 但我需要更多地了解 android Sqlite 数据库 例如 如果应用程序关闭或手机关机会发生什么 数据
  • 卸载后 Web 应用程序不显示“添加到主屏幕”

    这是我第一次创建网络应用程序 我设法解决了这个问题 所以我得到了实际的 chrome 提示 将其添加到主屏幕 然后我从手机上卸载了该网络应用程序 因为我想将其展示给我的同事 但是 屏幕上不再出现提示 问题 这是有意为之的行为还是我的应用程序
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • 计数物体和更好的填充孔的方法

    我是 OpenCV 新手 正在尝试计算物体的数量在图像中 我在使用 MATLAB 图像处理工具箱之前已经完成了此操作 并在 OpenCV Android 中也采用了相同的方法 第一步是将图像转换为灰度 然后对其进行阈值计算 然后计算斑点的数
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 如何使用InputConnectionWrapper?

    我有一个EditText 现在我想获取用户对此所做的所有更改EditText并在手动将它们插入之前使用它们EditText 我不希望用户直接更改中的文本EditText 这只能由我的代码完成 例如通过使用replace or setText
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 错误:在根项目“projectName”中找不到项目“app”

    我有一个在 Eclipse 中开发的旧应用程序 现在尝试将其迁移到 Android Studio 我更新了库并遵循了基本步骤 现在 我收到此错误 Error Project app not found in root project pro
  • .isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为 true

    我不知道为什么 但我的变量isNetowrkEnabled总是返回 true 我的设备上是否启用互联网并不重要 这是我的GPSTracker class public class GPSTracker extends Service imp
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或
  • android sdk 的位置尚未在 Windows 操作系统的首选项中设置

    在 Eclipse 上 我转到 windows gt Android SDK 和 AVD Manager 然后弹出此消息 Android sdk 的位置尚未在首选项中设置 进入首选项 在侧边栏找到 Android 然后会出现一个 SDK 位

随机推荐

  • Constexpr 类:继承?

    首先 我正在使用 Clang 3 4 1 我正在编写一个全局变量 它必须充当编译时上下文的占位符 主要作为值模板参数 为此 我编写了一个名为的 constexpr 类chameleon 它模仿任何运行时值的行为 struct chamele
  • c++11 及更高版本中 mutex.lock() 和 .unlock() 的确切线程间重新排序约束是什么?

    根据https en cppreference com w cpp atomic memory order https en cppreference com w cpp atomic memory order mutex lock and
  • 帮助菜单缺失部分 - Eclipse Luna

    我正在 Eclipse Luna 中工作 安装 Oracle Enterprise Pack for Eclipse OEPE 后 帮助菜单显示缺少项目 我附上屏幕截图 丢失物品 另外 我检查了菜单可见性 检查更新 安装新软件 安装细节 等
  • mypy 设置字典键/接口

    假设我有一个以字典作为参数的函数 def f d dict gt None x d x print x 我可以指定这本词典吗must有钥匙 x 到我的 我正在寻找类似的东西打字稿的界面 https www typescriptlang or
  • 如何在 Eclipse CDT 中配置特定的 GCC 交叉工具链?

    我导入了一些源代码C Makefile Project到 Eclipse CDT 工作区 并指定Cross GCC 索引器设置 工具链 项目导入进展顺利 但包含路径设置仅指向我当前的本机主机 GCC 实现 我一直在寻找Toolchain E
  • JavaScript:如何将额外参数传递给回调[重复]

    这个问题在这里已经有答案了 我有一个问题困扰了我一段时间 假设我有以下数组 var array 1 2 3 现在我有一个与此类似的功能 function print num str console log str num 是否可以调用 fo
  • Net Core 2.1 通用主机即服务

    我正在尝试使用最新的 Dotnet Core 2 1 运行时构建 Windows 服务 我不托管任何 aspnet 我不希望或不需要它来响应 http 请求 我遵循了示例中的代码 https github com aspnet Docs t
  • 我可以在 ARView 中使用缩放功能吗?

    我希望我的用户在 AR 应用程序中使用缩放 可以使用 ARView 进行缩放吗 我编写了以下代码并将其添加到点击操作中 let discoverySession AVCaptureDevice DiscoverySession device
  • 如何在 R 中使用 `tryCatch` 正确记录警告和错误?

    我有一个函数fun通常会产生警告 偶尔会引发错误 我正在尝试使用tryCatch记录警告和错误 如建议的那样这个答案 https stackoverflow com a 57658252 5252007 如何同时存储警告和错误 这是一个最小
  • gdb:如何列出打开的文件

    我想知道是否有可能获得调试应用程序已打开但未从 GDB 本身关闭的文件 目录列表 目前我设置了一个断点 然后使用外部程序 例如lsof检查打开的文件 但这种做法确实很烦人 环境 Debian Lenny 和 gdb v6 8 EDIT 我这
  • 在 Kubernetes 上使用 Spring Boot Admin 监控副本

    我在 Kubernetes 上设置了一个 Spring Boot 管理客户端 并扩展到 3 个副本 但是当我尝试检查实例时 管理服务器只显示一个 为了让 SBA Spring Boot 管理员 了解您的服务的三个实例是不同的 您需要确保每个
  • 为什么 C# 中的构造函数不被继承?

    我猜想 C 继承中有一些非常基本的东西我不明白 有人请启发我吗 有时 在子类化时 您希望限制创建类实例所需的条件 让我举一个例子 如果类确实继承了其超类构造函数 则所有类都将具有来自的无参数构造函数Object 显然这是不正确的
  • R下载文件重定向

    您好 我正在参加在线课程并尝试下载rda教授提供的数据集 我尝试运行与课程中提供的完全相同的命令 download file https dl dropbox com u 7710864 courseraPublic samsungData
  • 如何有效地搜索这个层次结构?

    我有一个如下所示的数据结构 public class Node public string Code get set public string Description get set public List
  • 错误“无法下载,$GOPATH 未设置。”

    Setup 看看我的配置 echo GOPATH ls r GOPATH home cyrus go src pkg bin echo GOROOT ls GOROOT usr local go api AUTHORS bin CONTRI
  • 使用 PHP 进行错误级别分析

    我不是编码员 但我确实理解逻辑 通常我能够使用 PHP 进行简单的编码 我正在寻求实施错误级别分析使用 PHP 你可以看到一个例子这个链接 http fotoforensics com 是否可以使用 ImageMagick 或 GD 来实现
  • PHP mail() 附件问题

    有人能帮我弄清楚为什么这总是返回错误吗 to email protected cdn cgi l email protection from Website lt email protected cdn cgi l email protec
  • Java / Kotlin / Spring Boot。如何在异常发生时自动获取参数值?

    考虑到我们正在使用Kotlin Spring Boot 注释等相关库 如果我们的代码抛出异常 我们如何在异常发生时自动检索方法参数值 我们可以使用 AOP Spring 拦截器或其他技术来做到这一点吗 我们希望用它来丰富我们的错误消息 以便
  • 如何处理 Pandas 中的SettingWithCopyWarning

    背景 我刚刚将 Pandas 从 0 11 升级到 0 13 0rc1 现在 该应用程序弹出了许多新的警告 其中之一是这样的 E FinReporter FM EXT py 449 SettingWithCopyWarning A valu
  • Android OAuth 改造访问令牌请求

    谁能告诉我将以下代码转换为改造的确切格式 curl X POST d grant type password username admin password admin scope read write u clientId clientS