开发博客系统文章数:菜单文章未更新构建eureka注册中心(请先阅读本文)https://segmentfault.com/a/11...构建Beans写入Token解析注解https://段错误。com/a/11...搭建权限管理系统https://segmentfault.com/a/11...搭建后台管理系统https://segmentfault.com/a/11...前端Fetch请求打包https://segmentfault.com/a/11...1。创建一个maven空项目,编写自己的Entity和工具类打包后导入到其他项目中;IDEA在Idea中打包部署项目到maven在最右边的导航栏可以看到一个MavenProjects,点击打开,如图:将Beans项目导入到当前项目中:com.serverbeans1.0-SNAPSHOT写Token解析注解(Token字符串解析为->TokenEntity实体)注解解析Token实例TokenEntity实体publicclassTokenEntity{私有字符串用户名;私有字符串令牌;私人日期过期日期;//过期时间privateDatecreateDate;//创建时间publicTokenEntity(StringuserId,Stringtoken,DateexpiresDate,DatecreateDate){this.userId=userId;this.token=令牌;this.expiresDate=expiresDate;this.createDate=createDate;}publicTokenEntity(){super();}get/set方法简单解析Token工具类中的方法(这个方法根据你解析token的方式来写)publicstaticObjectgetToken(Stringtoken,Stringkey)throwsException{DecodedJWTjwt=verifyToken(token,key);Mapmap=jwt.getClaims();TokenEntitybean=newTokenEntity();bean.setUserId(map.get("userId").asString());bean.setToken(令牌);bean.setExpiresDate(jwt.getIssuedAt());bean.setCreateDate(jwt.getExpiresAt());返回豆;lang.annotation.*;@Target(ElementType.PARAMETER)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceRequestToken{Stringvalue();}分析类importcom.server.authority.util.TokenUtil;importcom.server.config.SysBaseConfig;导入org.springframework.core.MethodParameter;导入org.springframework.web.bind.support.WebDataBinderFactory;导入org.springframework.web.context.request.NativeWebRequest;导入org.springframework.web.method.support.HandlerMethodArgumentResolver;导入org.springframework.web.method.support.ModelAndViewContainer;公共类RequestTokenAnalysis实现HandlerMethodArgumentResolver{@OverridepublicbooleansupportsParameter(MethodParametermethodParameter){returnmethodParameter.hasParameterAnnotation(RequestToken.class);}@OverridepublicObjectresolveArgument(MethodParametermethodParameter,ModelAndViewContainermodelAndViewContainer,NativeWebRequestnativeWebRequest,WebDataBinderFactorywebDataBinderFactory)抛出异常{RequestTokentoken=methodParameter.getParameterAnnotation(RequestToken.class);字符串值=token.value();类clazz=methodParameter.getParameterType();字符串数据=nativeWebRequest.getParameter(value);if(data==null){returnclazz.newInstance();}对象ectobject=TokenUtil.getToken(data,SysBaseConfig.TOKEN_KEY);返回对象;}}测试注解类@RequestMapping(value="/token",method=RequestMethod.GET)@ResponseBodypublicTResponseuserToken(@RequestToken(ParameterNames.ACCESS_TOKEN)TokenEntitytoken){try{returnauthorityService.userVerify(token.getToken());}catch(Exceptione){returntResponse.getTResponse("oxs-pai-appMenu","zh_CN",e.getMessage(),SResponse.getInstance().getSResponse(StatusCode.USER_DEFINED,"异常"));}}例如地址:http://127.0.0.1:8762/auth/token请求头中添加:at=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MzI2NTI3MTIsInVzZXJJZCI6IjEiLCJpYXQiOjE1MzI1NjYzMTJ9.z1MweHILT6f2KeUumVSNuuY0F9EYsePQp5JmKJiwDuc注入注解importcom.server.authority.annotation.RequestTokenAnalysis;importorg.springframework.boot.SpringApplication;导入org.springframework.boot.autoconfigure.SpringBootApplication;导入org.springframework.cloud.netflix.eureka.EnableEurekaClient;导入org.springframework.web.method.support.HandlerMethodArgumentResolver;导入org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;导入java.util.List;@SpringBootApplication@EnableEurekaClientpublicclassAuthorityApplicationextendsWebMvcConfigurerAdapter{publicstaticvoidmain(String[]args){SpringApplication.run(AuthorityApplication.class,args);}@OverridepublicvoidaddArgumentResolvers(ListargumentResolvers){argumentResolvers.add(newRequestTokenAnalysis());super.addArgumentResolvers(argumentResolvers);}}总结论:能够成功解析出TokenEntity