springsecurity6。0。2自定义token,实现权限控制
由于本系统目前还未集成redis等分布式缓存,目前用的是谷歌的guava做本地缓存来是实现token的时间有效期管理。
实现token生成工类TokenGeneratorpublic class TokenGenerator { public static String generateValue() { return generateValue(UUID.randomUUID().toString()); } private static final char[] HEX_CODE = "0123456789abcdef".toCharArray(); public static String toHexString(byte[] data) { if(data == null) { return null; } StringBuilder r = new StringBuilder(data.length*2); for ( byte b : data) { r.append(HEX_CODE[(b >> 4) & 0xF]); r.append(HEX_CODE[(b & 0xF)]); } return r.toString(); } public static String generateValue(String param) { try { MessageDigest algorithm = MessageDigest.getInstance("MD5"); algorithm.reset(); algorithm.update(param.getBytes()); byte[] messageDigest = algorithm.digest(); return toHexString(messageDigest); } catch (Exception e) { throw new ServerException("token invalid", e); } } }
实现admin关token服务public interface SysUserTokenService extends IService { /** * 生成token * @param loginUser 登录用户信息 */ RsObject createToken(UserDetail loginUser); /** * 获取用户身份信息 * * @return 用户信息 */ public UserDetail getLoginUser(HttpServletRequest request); /** * 退出 * @param userId 用户ID */ void logout(Long userId); // /** // * 在线用户分页 // */ // PageData onlinePage(Map params); }
新建一个filter用于校验登录信息AuthenticationTokenFilter@Component public class AuthenticationTokenFilter extends OncePerRequestFilter { @Autowired private SysUserTokenService tokenService; @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException { UserDetail loginUser = tokenService.getLoginUser(request); if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUser.getAuthentication())) { UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities()); authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); SecurityContextHolder.getContext().setAuthentication(authenticationToken); } chain.doFilter(request, response); } }
天骄套SecurityConfig 配置
然后把如下配置从白名单中移除
启动服务刷新后台查询接口报错403
修改前端页面把后端返回的token保存下来并放到http请求头里面,如下编码
export const formatToken = (token: string): string => { return "Bearer " + token; };
然后从登录,带上token后就可以正常访问了
杨玖易2023兔年推荐好听的女宝宝名字2023年是农历的兔年,兔子代表的是聪明灵活诚实善良和温柔。为了祝福新生儿拥有兔子般聪明灵活善良的性格特质,也给小孩取一个吉祥美好的名字。杨玖易2023兔年推荐好听的女宝宝名字悦苒
2023年兔年宝宝起名测名字程姓男孩好听有涵养的名字程姓男孩好听有涵养的名字一姓程的男孩名字洋气点程青浩(qngho)姓名笔画81119画出自1张埴的赠云留道人其二往往诸公眼亦青,尚疑崔浩是前生。赏析青深绿色或浅蓝色,喻年轻,年少,
万里走单骑一兔年春天之旅八时间2023。3月7日一8日7日9时半,天气晴朗,从大理沿杭瑞高速骑行到龙陵。2015年从腾冲骑行瑞丽过程中感觉松山抗战遗址就在县城附近,故直接到龙陵,全程300多公里,于下午2时
华媒访纽约华人超市鸡蛋价格回落食盐涨价中国侨网3月9日电据美国侨报报道,食品价格的浮动对普通民众的生活起着至关重要的影响。最近,记者在美国纽约法拉盛华人超市中发现,海鲜价格狂跌,食盐暴涨,鸡蛋价格已经缓慢降下来。国外来
特色川菜来一波,菜单赶紧更新欣欣美食分享潮流美食,管理资讯,厨房秘籍,厨师界自媒体!欣欣美食,面向专业厨师,我们与您一起分享最潮流美食,特色菜,创新菜,融合菜,意境菜。精品点菜单,各大城市婚宴单。各类酱汁。各
来自太空邮局的兔年明信片,你收到了吗1878年,上海海关造册处印制并发行了中国历史上的第一套邮票,这套以龙为图案的邮票后来被集邮界称为海关大龙。从此,邮票承担起弘扬国家传统文化引导人民审美意趣的文化名片责任,用独特的
大火烧掉库克后路,印度厂商玩火自焚,苹果撤离中国没戏富士康由于背靠苹果这个国际智能手机巨头,拥有大量订单和利润,曾放话大陆离不开我,我给大陆赏饭吃!不得不说,苹果给予富士康的订单确实为我国带来了一定程度的经济推动,但实际上苹果在中国
淄博市市直机关开展共植一棵树青春齐奋进春季植树暨青年联谊活动大众网海报新闻记者孙晨张琦雨淄博报道3月12日,在第45个植树节来临之际,淄博市委市直机关工委大众网海报新闻到三水源生态旅游度假区开展市直机关共植一棵树青春齐奋进春季植树暨青年联谊
等你老了,务必这样打扮自己发要短衣要长,美貌值爆表还高级不少人上了年纪后在衣着搭配上就一筹莫展起来,这是因为年龄增长,一方面让不少人面临一些身材皮肤问题,美貌值下滑很多。另一方面,中老年人对外界的看法也更看重,不管什么时候,穿衣打扮都会
全国已达200人!这款大湾区高级复合型人才又上新了深港澳金融科技师专才计划(SHMFTPP)2023年1月14日二级考试成绩现已公布。本次考试共有328名考生报名,316人参加考试,来自全国7个省份的125名考生顺利成为二级持证人
美食厨房秋葵酿虾滑秋葵鲜爽脆嫩,加上鲜美Q弹的虾滑,两者碰撞在一起,每一口都是鲜香美味!小嘉今天来教大家做一道秋葵酿虾滑01准备食材主料秋葵虾滑酱汁生抽蚝油淀粉适量清水少许盐(调汁根据个人喜好调味即