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

织梦网站地图在线生成中国传统美食网页制作素材

织梦网站地图在线生成,中国传统美食网页制作素材,网站开发语言为wap,外贸网建站推广目录 一、问题描述 二、实现步骤 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/657160/

相关文章:

  • 网站视频与服务器的关系建筑招工找活平台
  • 连云港市建设局网站万网网站备份
  • 东莞做企业网站解决方案网站设计
  • 怎么查网站的外链wordpress添加公告
  • 网站开发组织架构图镇江网站优化公司工作室
  • 网站建设方案哪家好 推荐长沙建设网站企业
  • 济南房地产网站建设三个字广告公司名称
  • 网站对不同分辨率wordpress开发解析
  • html5网站编写网站后台管理优化
  • 夹江企业网站建设报价装修公司联系方式汇总
  • 网站不想续费wordpress 判断登录
  • 太原有做网站的吗网站后台管理系统很慢
  • wordpress google authenticator网站优化排名方法
  • 芜湖建设路小学网站护肤品网站建设目的
  • 如何打造平台seo外包团队
  • 安徽网站建设推荐百度做网站推广多少钱
  • 河北邢台路桥建设公司网站网站做视频在线观看网址
  • 大连个人网站建设电脑访问手机网站跳转
  • 做注册会员和购物的网站需要什么2017网站建设价目表
  • 网站建设中管理员登录的代码怎么写自己做的网站打开是乱码
  • 网站制作好了怎么上传营销网站制作方法
  • 效果图网站有哪些网站页面设计论文
  • 企业建设网站策划案pta编程网站
  • 北京楼市最新消息企业网站做速优化排名万象
  • 全国网站备案查询网站开发用jquery吗
  • wordpress成品网站免费企业网站建设与网页制作
  • 莆田网站关键词优化陕西中药材初加工平台
  • 模板网站平台p2p网站制作 杭州
  • 谷歌网站推广排名工具莱芜网站建设自助建站优化
  • 霸州网站制作无需下载直接进入的app