1. Feign服务端接口代码
import com.xxx.gsc.tech.framework.usf.vo.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@FeignClient(name = "${feign-api.usf.name:DSPF--admin}", url = "${feign-api.usf.url:http://zuul-tst.lmp-sy.xpaas.xxx.com/dspf/admin}")
public interface USFFeignService {
@PostMapping(value = "/user/login", headers = {"SERVICE-AUTHENTICATION=${feign-api.usf.token}"})
USFResponse<LoginResultVo> login(@RequestBody LoginFormParamVo loginFormParamVo);
@GetMapping(value = "/user/adfsindex", headers = {"SERVICE-AUTHENTICATION=${feign-api.usf.token}"})
String loginADFS(@RequestParam("returnTo") String returnTo);
@Deprecated
@GetMapping(value = "/sys/user/token", headers = {"SERVICE-AUTHENTICATION=${feign-api.usf.token}"})
USFResponse<UserInfoResultVo> token(@RequestHeader(value = "token") String token);
@GetMapping(value = "/sys/user/token", headers = {"SERVICE-AUTHENTICATION=${feign-api.usf.token}"})
USFResponse<UserInfoResultVo> getUserByToken(@RequestHeader(value = "token") String token);
@PostMapping(value = "/user/logout", headers = {"SERVICE-AUTHENTICATION=${feign-api.usf.token}"})
USFResponse logout(@RequestHeader(value = "token") String token);
@PostMapping(value = "/user/adfs/sls", headers = {"SERVICE-AUTHENTICATION=${feign-api.usf.token}"})
String logoutADFS(@RequestParam("returnTo") String returnTo);
@PostMapping(value = "/sys/tenant/user/list", headers = {"SERVICE-AUTHENTICATION=${feign-api.usf.token}"})
USFResponse<List<TenantResultVo>> getTenantList(@RequestHeader(value = "token") String token);
@PutMapping(value = "/sys/user/tenant", headers = {"SERVICE-AUTHENTICATION=${feign-api.usf.token}"})
USFResponse tenant(@RequestBody TenantParamVo tenant, @RequestHeader(value = "token") String token);
@PostMapping(value = "/sys/menu/tree", headers = {"SERVICE-AUTHENTICATION=${feign-api.usf.token}"})
USFResponse<List<MenuResultVo>> getMenu(@RequestHeader(value = "token") String token);
@PostMapping(value = "/sys/group/usertenantgroup", headers = {"SERVICE-AUTHENTICATION=${feign-api.usf.token}"})
USFResponse<List<UserGroupResultVo>> getUserGroup(@RequestHeader(value = "token") String token);
@Slf4j
@Component
class USFFeignServiceFallback implements USFFeignService {
@Override
public USFResponse<LoginResultVo> login(LoginFormParamVo loginFormParamVo) {
return null;
}
@Override
public String loginADFS(String returnTo) {
return null;
}
@Override
public USFResponse<UserInfoResultVo> token(String token) {
return null;
}
@Override
public USFResponse<UserInfoResultVo> getUserByToken(String token) {
return null;
}
@Override
public USFResponse logout(String token) {
return null;
}
@Override
public String logoutADFS(String returnTo) {
return null;
}
@Override
public USFResponse<List<TenantResultVo>> getTenantList(String token) {
return null;
}
@Override
public USFResponse tenant(TenantParamVo tenant, String token) {
return null;
}
@Override
public USFResponse<List<MenuResultVo>> getMenu(String token) {
return null;
}
@Override
public USFResponse<List<UserGroupResultVo>> getUserGroup(String token) {
return null;
}
}
}
2. Feign消费端yml配置
feign-api:
usf:
name: DSPF--ADMIN
url: http://zuul-yyy
token: yyy
tenantId: 342
3.消费端代码
@Api(tags = "登录")
@RestController
@RequestMapping("/login")
public class LoginController extends BaseController {
@Autowired
private CommonUSFFeignService commonUSFFeignService;
@ApiOperation(value = "获取ADFS登录URL")
@PostMapping(value = "/loginADFS")
public Message loginADFS(String returnTo) {
if (returnTo == null) {
return sendFailureMessage("returnTo is not null");
}
return sendSuccessMessage(commonUSFFeignService.loginADFS(returnTo));
}
}