All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.feingto.cloud.remote.oauth2.SignClient Maven / Gradle / Ivy

package com.feingto.cloud.remote.oauth2;

import com.feingto.cloud.data.bean.Page;
import com.feingto.cloud.domain.enums.Stage;
import com.feingto.cloud.domain.oauth2.ClientDetail;
import com.feingto.cloud.domain.oauth2.ClientDetailApi;
import com.feingto.cloud.feign.ClientAuthConfiguration;
import feign.Headers;
import feign.Param;
import feign.RequestLine;
import org.springframework.cloud.openfeign.FeignClient;

import java.util.List;

import static com.feingto.cloud.constants.Constants.BASE_API;

/**
 * 签名客户端
 *
 * @author longfei
 */
@FeignClient(name = "${server.auth.host:cloud-uaa}", configuration = ClientAuthConfiguration.class)
public interface SignClient {
    String API = BASE_API + "/client";

    @RequestLine(value = "GET " + API + "/{id}")
    ClientDetail findOne(@Param("id") String id);

    @RequestLine(value = "GET " + API + "/apis?apiId={apiId}&username={username}")
    List getApis(@Param("apiId") String apiId, @Param("username") String username);

    @Headers("Content-Type: application/json")
    @RequestLine(value = "GET " + API + "?username={username}")
    Page data(Page page, @Param("username") String username);

    @Headers("Content-Type: application/json")
    @RequestLine(value = "POST " + API)
    ClientDetail save(ClientDetail clientDetail);

    @Headers("Content-Type: application/json")
    @RequestLine(value = "POST " + API + "/all?autoApproveAll={autoApproveAll}")
    ClientDetail saveAll(ClientDetail clientDetail, @Param("autoApproveAll") boolean autoApproveAll);

    @RequestLine(value = "PUT " + API + "?clientId={appKey}&clientSecret={appSecret}")
    void updateClientSecret(@Param("appKey") String appKey, @Param("appSecret") String appSecret);

    @RequestLine(value = "DELETE " + API + "/{id}")
    String delete(@Param("id") String id);

    @Headers("Content-Type: application/json")
    @RequestLine(value = "POST " + API + "/{id}/api?stage={stage}")
    void bindApi(@Param("id") String id, @Param("stage") Stage stage, List apiIds);

    @Headers("Content-Type: application/json")
    @RequestLine(value = "DELETE " + API + "/{id}/api")
    void unBindApi(@Param("id") String id, List clientDetailApiS);

    @RequestLine(value = "POST " + API + "/{id}/user?username={username}")
    void bindUser(@Param("id") String id, @Param("username") String username);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy