蓬勃来客跳过身份验证
蓬勃来客提供了自定义注解
在这里
代码如下
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface PassToken {
}
所以不想让token拦截有两种简单的方式
1)使用excludePaths,在excludePaths后追加你需要放行的地址
/**
* 拦截器不拦截的路径,doc,swagger,文件上传的路径,
* 在webapps用excludePathPatterns不生效,有bug,因为这些路径不存在,自动映射到/error.html
*
* 在设置服务器时要把token检验关掉一下
*/
// List<String> excludePaths = Arrays.asList("/api-docs", "/swagger-ui/","/druid/","/app/*", Constants.RESOURCE_PREFIX + "/");
List<String> excludePaths = Arrays.asList("/api-docs", "/swagger-ui/","/druid/","/app/*","/menuScrm/*", Constants.RESOURCE_PREFIX + "/");
// List<String> excludePaths = Arrays.asList("/api-docs", "/swagger-ui/","/druid/", Constants.RESOURCE_PREFIX + "/");
第二种方法就是添加上@PassToken的注解
过滤代码如下
//检查是否有passtoken注释,有则跳过认证
if (method.isAnnotationPresent(PassToken.class)) {
PassToken passToken = method.getAnnotation(PassToken.class);
return true;
}
使用代码如下
@GetMapping("/getAppInfo")
@PassToken
@ApiOperation("获取appId")
@Log(modelName = "微信第三方平台授权信息", operatorType = "获取appId")
public R<MpAppIdDTO> getAppInfo(String extCorpId){
return R.data(mpAccreditService.getAppInfo(extCorpId));
}
要注意Log
@Log(modelName = "微信第三方平台授权信息", operatorType = "获取appId")
这个注解还是建议删掉
有些log打印日志是要获取到当前用户信息的所以再没登入状态下,就算使用了@PassToken有时也会报错的!