资源服务器获取用户信息,资源服务器如何通过jwks_uri解密 token,转换为用户信息...

默认的 oidc client有个校验器,可以校验token,但是无法做到转换为用户信息吧,这个校验 和转换器就没有关系对吧。

```

public class OIDCTokenVerifier {

private static final Logger LOG = LoggerFactory.getLogger(OIDCTokenVerifier.class);

private final RPHolder rpHolder;

private final String token;

public OIDCTokenVerifier(RPHolder rpHolder, String token) {

this.rpHolder = rpHolder;

this.token = token;

}

public Map verify() {

VerificationKeyResolver verificationKeyResolver = new HttpsJwksVerificationKeyResolver(new HttpsJwks(rpHolder.getDiscoveryEndpointInfo().getJwks_uri()));

JwtConsumer consumer = new JwtConsumerBuilder()

.setVerificationKeyResolver(verificationKeyResolver)

//此处有许可项可配置进行校验,请根据实际需要配置

//更多帮助可访问 https://bitbucket.org/b_c/jose4j/wiki/JWT%20Examples

//{"user_name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 `CalendarContract.Events.CONTENT_URI` 可以获取到所有的日历事件,包括重复事件。但是,您需要注意的是,默认情况下,Android 平台只会返回重复事件的一个实例,而不是多个实例。这是因为在日历应用程序中,重复事件只需要显示一次即可,而不是每次重复都显示一次。 如果您需要获取重复事件的所有实例,您可以使用 `CalendarContract.Instances.CONTENT_URI`,并指定 `CalendarContract.Instances.ALL_DAY`、`CalendarContract.Instances.BEGIN` 和 `CalendarContract.Instances.END` 等列,以获取所有重复事件的时间信息。此外,您还需要使用 `CalendarContract.Instances.EVENT_ID` 列来获取重复事件的 ID,然后使用该 ID 来获取事件的详细信息,例如标题、描述和地点等。 以下是一个获取重复事件实例的示例代码: ```java String[] INSTANCE_PROJECTION = new String[] { CalendarContract.Instances.EVENT_ID, // 事件 ID CalendarContract.Instances.BEGIN, // 事件开始时间 CalendarContract.Instances.END // 事件结束时间 }; // 获取日历事件实例的 URI Uri uri = CalendarContract.Instances.CONTENT_URI; // 选择列 String selection = CalendarContract.Instances.ALL_DAY + " = ? AND " + CalendarContract.Instances.EVENT_ID + " = ?"; String[] selectionArgs = new String[] {"0", String.valueOf(eventId)}; // 查询日历事件实例 Cursor cursor = getContentResolver().query(uri, INSTANCE_PROJECTION, selection, selectionArgs, null); // 处理查询结果 while (cursor.moveToNext()) { // 获取事件 ID、开始时间和结束时间 long eventId = cursor.getLong(cursor.getColumnIndex(CalendarContract.Instances.EVENT_ID)); long beginTime = cursor.getLong(cursor.getColumnIndex(CalendarContract.Instances.BEGIN)); long endTime = cursor.getLong(cursor.getColumnIndex(CalendarContract.Instances.END)); // 处理事件实例 // ... } // 关闭游标 cursor.close(); ``` 希望这可以帮助您解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值