在微服务当中,不可避免的就是内部服务之间的相互调用,但是由于有鉴权的存在,可能会因为权限不足调用失败,但是正常情况下,内部不需要鉴权,如果我们暴漏接口,导致数据不安全,因此InnerAuth注解而生,它可以不暴露接口就调用方法。
基本使用
handelr上加注解
@InnerAuth
@GetMapping("info")
public LoginUser userInfo(@RequestParam(value = "username", required = true) String username) {
//代码省略
...
}
其他服务调用
声明接口
@FeignClient(value = "blueming-system", fallbackFactory = RemoteUserFallbackFactory.class)
public interface RemoteUserService {
@GetMapping(value = "/user/info")
public LoginUser userInfo (@RequestParam("username") String username,@RequestHeader(SecurityConstants.FROM_SOURCE) String fromInner);
}
SecurityConstants.FROM_INNER 表示内部服务调用
LoginUser loginUser = remoteUserService.userInfo(username, SecurityConstants.FROM_INNER);