在微服务当中,不可避免的就是内部服务之间的相互调用,但是由于有鉴权的存在,可能会因为权限不足调用失败,但是正常情况下,内部不需要鉴权,如果我们暴漏接口,导致数据不安全,因此InnerAuth注解而生,它可以不暴露接口就调用方法。

    基本使用
    handelr上加注解

    1. @InnerAuth
    2. @GetMapping("info")
    3. public LoginUser userInfo(@RequestParam(value = "username", required = true) String username) {
    4. //代码省略
    5. ...
    6. }

    其他服务调用
    声明接口

    1. @FeignClient(value = "blueming-system", fallbackFactory = RemoteUserFallbackFactory.class)
    2. public interface RemoteUserService {
    3. @GetMapping(value = "/user/info")
    4. public LoginUser userInfo (@RequestParam("username") String username,@RequestHeader(SecurityConstants.FROM_SOURCE) String fromInner);
    5. }
    SecurityConstants.FROM_INNER 表示内部服务调用
    
     LoginUser loginUser = remoteUserService.userInfo(username, SecurityConstants.FROM_INNER);