java parameters用法_Java Parameters.get方法代码示例

import enkan.collection.Parameters; //导入方法依赖的package包/类

/**

* Authorization endpoint.

*

* @param params Request parameters

* @param principal User principal

* @param request HttpRequest object

* @return Authorization response

*/

public HttpResponse authorize(Parameters params, UserPermissionPrincipal principal, HttpRequest request) {

if (principal != null) {

Parameters responseParams = Parameters.of();

if (params.containsKey("state")) {

responseParams.put("state", params.get("state"));

}

String clientId = params.get("client_id");

OidcApplicationDao oidcApplicationDao = daoProvider.getDao(OidcApplicationDao.class);

OidcApplication oidcApplication = oidcApplicationDao.selectByClientId(clientId);

String redirectUrl = (String) params.getOrDefault("redirect_url", oidcApplication.getCallbackUrl());

Set responseTypes = Arrays.stream(((String) params.getOrDefault("response_type", "code")).split("[ ,]+"))

.map(rt -> ResponseType.of(rt))

.filter(Objects::nonNull)

.collect(Collectors.toSet());

if (responseTypes.contains(ID_TOKEN)) {

String nonce = params.get("nonce");

responseParams.put("id_token", createIdToken(principal.getId(), oidcApplication, nonce));

}

if (responseTypes.contains(TOKEN)) {

responseParams.put("access_token", createAccessToken(principal.getName(), clientId, Collections.emptyList()));

responseParams.put("token_type", "bearer");

responseParams.put("expires_in", 3600);

}

if (responseTypes.contains(CODE)) {

KeyValueStore authorizationCodeStore = storeProvider.getStore(AUTHORIZATION_CODE);

String code = RandomUtils.generateRandomString(16, config.getSecureRandom());

authorizationCodeStore.write(code, principal.getId());

responseParams.put("code", code);

}

return HttpResponseUtils.redirect(makeCallbackUrl(redirectUrl, responseParams, responseTypes), FOUND);

} else {

return HttpResponseUtils.redirect("/my/signIn?url=" + request.getUri() + "?" + CodecUtils.urlEncode(request.getQueryString()), SEE_OTHER);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值