当前位置: 首页 > news >正文

腾讯云ADM怎么做网站代写软文

腾讯云ADM怎么做网站,代写软文,联盟设计库,下载班级优化大师并安装版本 1.2.1 定制方法 默认用户信息Mapper只针对用户ID#xff0c;电子邮件#xff0c;电话#xff0c;个人档案等字段进行处理#xff0c;如需在用户信息端点返回自定义的字段可通过以下方法定制Mapper Bean public OAuth2TokenCustomizerJwtEncodingContext j…版本 1.2.1 定制方法 默认用户信息Mapper只针对用户ID电子邮件电话个人档案等字段进行处理如需在用户信息端点返回自定义的字段可通过以下方法定制Mapper Bean public OAuth2TokenCustomizerJwtEncodingContext jwtTokenCustomizer() {return (context) - {if (OAuth2TokenType.ACCESS_TOKEN.equals(context.getTokenType())) {context.getClaims().claims((claims) - {// 在令牌中添加了角色声明信息默认用户信息端点Mapper不会进行处理SetString roles AuthorityUtils.authorityListToSet(context.getPrincipal().getAuthorities()).stream().map(c - c.replaceFirst(^ROLE_, )).collect(Collectors.collectingAndThen(Collectors.toSet(), Collections::unmodifiableSet));claims.put(roles, roles);});}}; }Bean public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http ) {...// 定制MapperFunctionOidcUserInfoAuthenticationContext, OidcUserInfo userInfoMapper (context) - {OidcUserInfoAuthenticationToken authentication context.getAuthentication();JwtAuthenticationToken principal (JwtAuthenticationToken) authentication.getPrincipal();// 解析JWT令牌中的所有声明信息return new OidcUserInfo(principal.getToken().getClaims());};http.getConfigurer(OAuth2AuthorizationServerConfigurer.class)// 启用OpenID Connect 1.0.oidc(oidc-{oidc.userInfoEndpoint(userInfo-{userInfo.userInfoMapper(userInfoMapper);});}); }源码 userInfoMapper 默认配置 OpenID Connect 用户信息认证器 org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcUserInfoAuthenticationProvider public final class OidcUserInfoAuthenticationProvider implements AuthenticationProvider {...// 用户信息Mapper默认值private FunctionOidcUserInfoAuthenticationContext, OidcUserInfo userInfoMapper new DefaultOidcUserInfoMapper();...private static final class DefaultOidcUserInfoMapper implements FunctionOidcUserInfoAuthenticationContext, OidcUserInfo {// 电子邮件声明字段private static final ListString EMAIL_CLAIMS Arrays.asList(StandardClaimNames.EMAIL,StandardClaimNames.EMAIL_VERIFIED);// 电话声明字段private static final ListString PHONE_CLAIMS Arrays.asList(StandardClaimNames.PHONE_NUMBER,StandardClaimNames.PHONE_NUMBER_VERIFIED);// 个人档案声明字段private static final ListString PROFILE_CLAIMS Arrays.asList(StandardClaimNames.NAME,StandardClaimNames.FAMILY_NAME,StandardClaimNames.GIVEN_NAME,StandardClaimNames.MIDDLE_NAME,StandardClaimNames.NICKNAME,StandardClaimNames.PREFERRED_USERNAME,StandardClaimNames.PROFILE,StandardClaimNames.PICTURE,StandardClaimNames.WEBSITE,StandardClaimNames.GENDER,StandardClaimNames.BIRTHDATE,StandardClaimNames.ZONEINFO,StandardClaimNames.LOCALE,StandardClaimNames.UPDATED_AT);Overridepublic OidcUserInfo apply(OidcUserInfoAuthenticationContext authenticationContext) {OAuth2Authorization authorization authenticationContext.getAuthorization();OidcIdToken idToken authorization.getToken(OidcIdToken.class).getToken();OAuth2AccessToken accessToken authenticationContext.getAccessToken();// 获取scope请求的声明信息MapString, Object scopeRequestedClaims getClaimsRequestedByScope(idToken.getClaims(),accessToken.getScopes());// 使用请求的声明信息创建用户信息对象return new OidcUserInfo(scopeRequestedClaims);}private static MapString, Object getClaimsRequestedByScope(MapString, Object claims, SetString requestedScopes) {SetString scopeRequestedClaimNames new HashSet(32);// 用户IDscopeRequestedClaimNames.add(StandardClaimNames.SUB);// 根据请求的SCOPE添加字段if (requestedScopes.contains(OidcScopes.ADDRESS)) {scopeRequestedClaimNames.add(StandardClaimNames.ADDRESS);}if (requestedScopes.contains(OidcScopes.EMAIL)) {scopeRequestedClaimNames.addAll(EMAIL_CLAIMS);}if (requestedScopes.contains(OidcScopes.PHONE)) {scopeRequestedClaimNames.addAll(PHONE_CLAIMS);}if (requestedScopes.contains(OidcScopes.PROFILE)) {scopeRequestedClaimNames.addAll(PROFILE_CLAIMS);}// 根据请求的SCOPE字段过滤信息MapString, Object requestedClaims new HashMap(claims);requestedClaims.keySet().removeIf(claimName - !scopeRequestedClaimNames.contains(claimName));return requestedClaims;}} }OpenID Connect 用户信息端点配置器 org.springframework.security.oauth2.server.authorization.config.annotation.web.configurers.OidcUserInfoEndpointConfigurer public final class OidcUserInfoEndpointConfigurer extends AbstractOAuth2Configurer {...// userInfoMapper配置入口public OidcUserInfoEndpointConfigurer userInfoMapper(FunctionOidcUserInfoAuthenticationContext, OidcUserInfo userInfoMapper) {this.userInfoMapper userInfoMapper;return this;}... // 初始化安全配置Overridevoid init(HttpSecurity httpSecurity) {// 应用用户信息端点URI安全配置AuthorizationServerSettings authorizationServerSettings OAuth2ConfigurerUtils.getAuthorizationServerSettings(httpSecurity);String userInfoEndpointUri authorizationServerSettings.getOidcUserInfoEndpoint();this.requestMatcher new OrRequestMatcher(new AntPathRequestMatcher(userInfoEndpointUri, HttpMethod.GET.name()),new AntPathRequestMatcher(userInfoEndpointUri, HttpMethod.POST.name()));// 应用用户认证器ListAuthenticationProvider authenticationProviders createDefaultAuthenticationProviders(httpSecurity);if (!this.authenticationProviders.isEmpty()) {authenticationProviders.addAll(0, this.authenticationProviders);}this.authenticationProvidersConsumer.accept(authenticationProviders);authenticationProviders.forEach(authenticationProvider -httpSecurity.authenticationProvider(postProcess(authenticationProvider)));}// 创建 OpenID Connect 用户信息认证器private ListAuthenticationProvider createDefaultAuthenticationProviders(HttpSecurity httpSecurity) {ListAuthenticationProvider authenticationProviders new ArrayList();OidcUserInfoAuthenticationProvider oidcUserInfoAuthenticationProvider new OidcUserInfoAuthenticationProvider(OAuth2ConfigurerUtils.getAuthorizationService(httpSecurity));// 如果存在定制的userInfoMapper则替换默认值if (this.userInfoMapper ! null) {oidcUserInfoAuthenticationProvider.setUserInfoMapper(this.userInfoMapper);}authenticationProviders.add(oidcUserInfoAuthenticationProvider);return authenticationProviders;} }
http://www.zqtcl.cn/news/74398/

相关文章:

  • 怎么使网站降权知名网站定制公司电话
  • 餐饮酒店网站建设wordpress ftp 失败
  • 快速做网站服务好wordpress 自定义页面列表
  • 微信做明天展现网站要多少钱优化流程
  • 电子商务网站建设调查问卷中国平面设计公司
  • 济南市建设工程招标投标协会网站ps做网站页面步骤
  • 网站建设加排名要多少贵阳建设职业技术学院招聘信息网站
  • 高大上强企业网站怎么制作网页投票软件
  • 浙江平安建设网站做美团网站需要多少钱
  • 毕设做购物网站中国建设银行网上银行网站
  • p2p理财网站建设网站抬头怎么做
  • 企业网站的作用和目的昌大建设原名叫什么
  • 铁门关网站建设wordpress 默认主题
  • 我在学校志愿队做网站的经历在哪些网站做收录比较快
  • 网站推广策划方案免备案wordpress主机
  • 网站建设品牌有哪些wordpress使用
  • 东莞网站开发技术公司电话潘家园做网站的公司
  • 自己架设网站备案公司做两个网站有影响吗
  • 高端网站建设的流程是什么郑州网站关键
  • 网站建设方案书原件网站制作换下面友情连接
  • 阿里云 网站托管汕头论坛
  • 怎么做网络棋牌网站网站新闻百度收录
  • dw做网站背景图片设置房子降价最新消息
  • wordpress时尚英文站做一个购物商城网站多少钱
  • 中国建设银行网站的社保板块在哪网站使用什么数据库
  • 济南mip网站建设公司中国小康建设网是骗子网站吗?
  • iis6网站域名企业网站托管方案内容具体有哪些
  • 泉州专业做网站在百度上怎么发布信息
  • 中国数据统计网站wordpress设置文章
  • 长沙网站建设王道下拉棒东莞市建筑业协会