@ -15,12 +15,18 @@
* /
* /
package org.thingsboard.server.controller ;
package org.thingsboard.server.controller ;
import io.swagger.annotations.ApiOperation ;
import io.swagger.annotations.ApiParam ;
import lombok.extern.slf4j.Slf4j ;
import lombok.extern.slf4j.Slf4j ;
import org.springframework.http.HttpStatus ;
import org.springframework.http.HttpStatus ;
import org.springframework.security.access.prepost.PreAuthorize ;
import org.springframework.security.access.prepost.PreAuthorize ;
import org.springframework.web.bind.annotation.* ;
import org.springframework.web.bind.annotation.PathVariable ;
import org.thingsboard.server.common.data.EntityType ;
import org.springframework.web.bind.annotation.RequestBody ;
import org.thingsboard.server.common.data.audit.ActionType ;
import org.springframework.web.bind.annotation.RequestMapping ;
import org.springframework.web.bind.annotation.RequestMethod ;
import org.springframework.web.bind.annotation.ResponseBody ;
import org.springframework.web.bind.annotation.ResponseStatus ;
import org.springframework.web.bind.annotation.RestController ;
import org.thingsboard.server.common.data.exception.ThingsboardException ;
import org.thingsboard.server.common.data.exception.ThingsboardException ;
import org.thingsboard.server.common.data.id.OAuth2ClientRegistrationTemplateId ;
import org.thingsboard.server.common.data.id.OAuth2ClientRegistrationTemplateId ;
import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplate ;
import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplate ;
@ -37,6 +43,10 @@ import java.util.List;
public class OAuth2ConfigTemplateController extends BaseController {
public class OAuth2ConfigTemplateController extends BaseController {
private static final String CLIENT_REGISTRATION_TEMPLATE_ID = "clientRegistrationTemplateId" ;
private static final String CLIENT_REGISTRATION_TEMPLATE_ID = "clientRegistrationTemplateId" ;
private static final String OAUTH2_CLIENT_REGISTRATION_TEMPLATE_DEFINITION = "Client registration template is OAuth2 provider configuration template with default settings for registering new OAuth2 clients" ;
@ApiOperation ( value = "Create or update OAuth2 client registration template (saveClientRegistrationTemplate)" ,
notes = OAUTH2_CLIENT_REGISTRATION_TEMPLATE_DEFINITION )
@PreAuthorize ( "hasAnyAuthority('SYS_ADMIN')" )
@PreAuthorize ( "hasAnyAuthority('SYS_ADMIN')" )
@RequestMapping ( method = RequestMethod . POST )
@RequestMapping ( method = RequestMethod . POST )
@ResponseStatus ( value = HttpStatus . OK )
@ResponseStatus ( value = HttpStatus . OK )
@ -49,10 +59,13 @@ public class OAuth2ConfigTemplateController extends BaseController {
}
}
}
}
@ApiOperation ( value = "Delete OAuth2 client registration template by id (deleteClientRegistrationTemplate)" ,
notes = OAUTH2_CLIENT_REGISTRATION_TEMPLATE_DEFINITION )
@PreAuthorize ( "hasAnyAuthority('SYS_ADMIN')" )
@PreAuthorize ( "hasAnyAuthority('SYS_ADMIN')" )
@RequestMapping ( value = "/{clientRegistrationTemplateId}" , method = RequestMethod . DELETE )
@RequestMapping ( value = "/{clientRegistrationTemplateId}" , method = RequestMethod . DELETE )
@ResponseStatus ( value = HttpStatus . OK )
@ResponseStatus ( value = HttpStatus . OK )
public void deleteClientRegistrationTemplate ( @PathVariable ( CLIENT_REGISTRATION_TEMPLATE_ID ) String strClientRegistrationTemplateId ) throws ThingsboardException {
public void deleteClientRegistrationTemplate ( @ApiParam ( value = "String representation of client registration template id to delete" , example = "139b1f81-2f5d-11ec-9dbe-9b627e1a88f4" )
@PathVariable ( CLIENT_REGISTRATION_TEMPLATE_ID ) String strClientRegistrationTemplateId ) throws ThingsboardException {
checkParameter ( CLIENT_REGISTRATION_TEMPLATE_ID , strClientRegistrationTemplateId ) ;
checkParameter ( CLIENT_REGISTRATION_TEMPLATE_ID , strClientRegistrationTemplateId ) ;
try {
try {
accessControlService . checkPermission ( getCurrentUser ( ) , Resource . OAUTH2_CONFIGURATION_TEMPLATE , Operation . DELETE ) ;
accessControlService . checkPermission ( getCurrentUser ( ) , Resource . OAUTH2_CONFIGURATION_TEMPLATE , Operation . DELETE ) ;
@ -63,6 +76,8 @@ public class OAuth2ConfigTemplateController extends BaseController {
}
}
}
}
@ApiOperation ( value = "Get the list of all OAuth2 client registration templates (getClientRegistrationTemplates)" ,
notes = OAUTH2_CLIENT_REGISTRATION_TEMPLATE_DEFINITION )
@PreAuthorize ( "hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')" )
@PreAuthorize ( "hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')" )
@RequestMapping ( method = RequestMethod . GET , produces = "application/json" )
@RequestMapping ( method = RequestMethod . GET , produces = "application/json" )
@ResponseBody
@ResponseBody
@ -74,4 +89,5 @@ public class OAuth2ConfigTemplateController extends BaseController {
throw handleException ( e ) ;
throw handleException ( e ) ;
}
}
}
}
}
}