package cc.mrbird.febs.auth.controller; import cc.mrbird.febs.auth.entity.OauthClientDetails; import cc.mrbird.febs.auth.service.OauthClientDetailsService; import cc.mrbird.febs.common.core.entity.FebsResponse; import cc.mrbird.febs.common.core.entity.QueryRequest; import cc.mrbird.febs.common.core.exception.FebsException; import cc.mrbird.febs.common.core.utils.FebsUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import java.util.Map; /** * @author Yuuki */ @Slf4j @Validated @RestController @RequiredArgsConstructor @RequestMapping("client") public class OauthClientDetailsController { private final OauthClientDetailsService oauthClientDetailsService; @GetMapping("check/{clientId}") public boolean checkUserName(@NotBlank(message = "{required}") @PathVariable String clientId) { OauthClientDetails client = this.oauthClientDetailsService.findById(clientId); return client == null; } @GetMapping("secret/{clientId}") @PreAuthorize("hasAuthority('client:decrypt')") public FebsResponse getOriginClientSecret(@NotBlank(message = "{required}") @PathVariable String clientId) { OauthClientDetails client = this.oauthClientDetailsService.findById(clientId); String origin = client != null ? client.getOriginSecret() : StringUtils.EMPTY; return new FebsResponse().data(origin); } @GetMapping @PreAuthorize("hasAuthority('client:view')") public FebsResponse oauthCliendetailsList(QueryRequest request, OauthClientDetails oAuthClientDetails) { Map dataTable = FebsUtil.getDataTable(this.oauthClientDetailsService.findOauthClientDetails(request, oAuthClientDetails)); return new FebsResponse().data(dataTable); } @PostMapping @PreAuthorize("hasAuthority('client:add')") public void addOauthCliendetails(@Valid OauthClientDetails oAuthClientDetails) throws FebsException { try { this.oauthClientDetailsService.createOauthClientDetails(oAuthClientDetails); } catch (Exception e) { String message = "新增客户端失败"; log.error(message, e); throw new FebsException(message); } } @DeleteMapping @PreAuthorize("hasAuthority('client:delete')") public void deleteOauthCliendetails(@NotBlank(message = "{required}") String clientIds) throws FebsException { try { this.oauthClientDetailsService.deleteOauthClientDetails(clientIds); } catch (Exception e) { String message = "删除客户端失败"; log.error(message, e); throw new FebsException(message); } } @PutMapping @PreAuthorize("hasAuthority('client:update')") public void updateOauthCliendetails(@Valid OauthClientDetails oAuthClientDetails) throws FebsException { try { this.oauthClientDetailsService.updateOauthClientDetails(oAuthClientDetails); } catch (Exception e) { String message = "修改客户端失败"; log.error(message, e); throw new FebsException(message); } } }