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

做商城网站的企业影视app源码

做商城网站的企业,影视app源码,济南哪家网站技术比较高,小程序招商加盟平台目录 一、问题描述 二、实现步骤 1、自定义TokenEnhancer 2、配置授权服务器 3、自定义UserDetails的User类 三、参考文档 一、问题描述 Oauth2里默认生成的JWT信息并没有用户信息,在认证授权后一般会返回这一部分信息,我对此进行了改造。 Oauth…

目录

一、问题描述

二、实现步骤

1、自定义TokenEnhancer

2、配置授权服务器

3、自定义UserDetails的User类

三、参考文档


一、问题描述

Oauth2里默认生成的JWT信息并没有用户信息,在认证授权后一般会返回这一部分信息,我对此进行了改造。

Oauth 2.0 JWT 默认返回 OAuth2AccessToken 接口的实现类,默认实现类是 DefaultOAuth2AccessToken,返回字段有 5 个:

access_token:表示访问令牌,必选项
token_type:表示令牌类型,该值大小写不敏感,必选项,默认是 bearer 类型
expires_in:表示过期时间,单位为秒。如果省略该参数,必须其他方式设置过期时间。
refresh_token:表示更新令牌,用来获取下一次的访问令牌,可选项。
scope:表示权限范围,如果与客户端申请的范围一致,此处可省

改造后,最终实现效果:

可以看到额外信息已添加上。

二、实现步骤

1、自定义TokenEnhancer

public TokenEnhancer customTokenEnhancer() {return (accessToken, authentication) -> {Map<String, Object> additionalInfo = new HashMap<>();Object principal = authentication.getPrincipal();try {String s = objectMapper.writeValueAsString(principal);Map<?, ?> map = objectMapper.readValue(s, Map.class);/* 移除不需要的属性 */map.remove("accountNonExpired");map.remove("accountNonLocked");map.remove("credentialsNonExpired");map.remove("enabled");additionalInfo.put("data", map);} catch (JsonProcessingException e) {log.error("", e);}((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo);return accessToken;};}

2、配置授权服务器

    @Overridepublic void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {TokenEnhancerChain enhancerChain = new TokenEnhancerChain();enhancerChain.setTokenEnhancers(Arrays.asList(customTokenEnhancer(), jwtAccessTokenConverter())); //token转换器DefaultTokenServices tokenServices = new DefaultTokenServices();tokenServices.setTokenEnhancer(enhancerChain); //token拓展链tokenServices.setTokenStore(jwtTokenStore()); //采用JWT存储token/* 开启refresh_token */tokenServices.setReuseRefreshToken(true);tokenServices.setSupportRefreshToken(true);endpoints.authenticationManager(authenticationManager).userDetailsService(userDetailsService).tokenStore(jwtTokenStore()) //采用JWT存储token.tokenServices(tokenServices);super.configure(endpoints);}

3、自定义UserDetails的User类

@Getter
@Setter
@ApiModel("登录用户对象")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class JwtUser<T> extends User {@ApiModelProperty("账号信息")private T info;@ApiModelProperty("菜单")private List<TreeNode<SysMenu>> menus;public JwtUser(String username, String password, Collection<? extends GrantedAuthority> authorities) {super(username, password, authorities);}public JwtUser(String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) {super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);}
}

并自定义UserDetailsService并在返回时返回自定义对象即可。

三、参考文档

https://www.cnblogs.com/kuangdaoyizhimei/p/14279979.html

Spring Security JWT 添加额外信息_jwts增加参数-CSDN博客

http://www.yayakq.cn/news/48847/

相关文章:

  • h5电子商城网站开发长沙需要做网站的企业
  • 个人网站整站下载淮南网站设计
  • 卦神岭做网站iapp网站做软件
  • WordPress 网站成本目前专业做水果的网站有哪些
  • 博兴县城乡建设局网站大学学校网站建设方案
  • 网站建设岗位职责怎么写网站开发demo版本
  • 实验室网站制作四川省建设监理协会网站
  • 重庆网站怎么设置公司网站界面如何设计
  • 宜昌哪里有专业做网站的唐山哪个公司可以建网站
  • 做装修哪个网站推广好担保公司网站模板
  • 网站开发实战作业答案网站建设 环保素材
  • 常熟建设局网站首页佛山电商网站制作团队
  • 长沙网站推广公司短视频素材哪里找
  • 怎么做返利网站吗佛山微信网站建设
  • 门户网站的建立页面设计存在的问题
  • 网站标题logo怎么做动易 网站统计 首次打开
  • 济南做外贸网站360优化大师安卓下载
  • 做零售的外贸网站江苏企业网站建设
  • 深圳做网站最好的公司放心的网站建设代理
  • 胶州哪里有做网站的哈尔滨网页案例分析
  • 橙色系网站wordpress 灯箱 插件
  • 网站注册网站违法吗网页制作简单教程
  • 企业网站建设的劣势wordpress mu 安装
  • 北京做网站的工作室青岛红岛做网站
  • 手机排行榜2024前十名最新百度seo排名优化是什么
  • 合肥网站建设西安商城类网站制作
  • 建设网站实训报告书成品网站源码1688免费推荐
  • 药业集团网站建设方案广东嵘通建设
  • 商丘网站建设流程中企动力网站icp备案通知
  • 手机网站会员中心模板下载建立网站的步骤是什么