浏览代码

SCIM API Mapping

MaxKey 1 周之前
父节点
当前提交
c99b33639e

+ 17 - 15
maxkey-web-apis/maxkey-web-api-scim/src/main/java/org/dromara/maxkey/web/apis/identity/scim/ScimGroupController.java

@@ -37,12 +37,14 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.http.converter.json.MappingJacksonValue;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.RestController;
@@ -59,8 +61,8 @@ public class ScimGroupController {
     @Autowired
     GroupMemberService groupMemberService;
     
-    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
-    public MappingJacksonValue get(@PathVariable String id,
+    @GetMapping(value = "/{id}")
+    public ScimGroup get(@PathVariable String id,
                                    @RequestParam(required = false) String attributes) {
         _logger.debug("ScimGroup id {} , attributes {}", id , attributes);
         Groups group    = groupsService.get(id);
@@ -73,11 +75,11 @@ public class ScimGroupController {
             }
             scimGroup.setMembers(members);
         }
-        return new MappingJacksonValue(scimGroup);
+        return scimGroup;
     }
 
-    @RequestMapping(method = RequestMethod.POST)
-    public MappingJacksonValue create(@RequestBody  ScimGroup scimGroup,
+    @PostMapping
+    public ScimGroup create(@RequestBody  ScimGroup scimGroup,
                                       @RequestParam(required = false) String attributes,
                                       UriComponentsBuilder builder) throws IOException {
         _logger.debug("ScimGroup content {} , attributes {}", scimGroup , attributes);
@@ -86,8 +88,8 @@ public class ScimGroupController {
         return get(group.getId(),attributes);
     }
 
-    @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
-    public MappingJacksonValue  replace(@PathVariable String id,
+    @PutMapping(value = "/{id}")
+    public ScimGroup  replace(@PathVariable String id,
                                         @RequestBody ScimGroup scimGroup,
                                         @RequestParam(required = false) String attributes)
                                                 throws IOException {
@@ -97,20 +99,20 @@ public class ScimGroupController {
         return get(group.getId(),attributes);
     }
 
-    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
+    @DeleteMapping(value = "/{id}")
     @ResponseStatus(HttpStatus.OK)
     public void delete(@PathVariable final String id) {
         _logger.debug("ScimGroup id {} " , id);
         groupsService.delete(id);
     }
 
-    @RequestMapping(method = RequestMethod.GET)
-    public MappingJacksonValue searchWithGet(@ModelAttribute ScimParameters requestParameters) {
+    @GetMapping
+    public ScimSearchResult<ScimGroup> searchWithGet(@ModelAttribute ScimParameters requestParameters) {
         return searchWithPost(requestParameters);
     }
 
-    @RequestMapping(value = "/.search", method = RequestMethod.POST)
-    public MappingJacksonValue searchWithPost(@ModelAttribute ScimParameters requestParameters) {
+    @PostMapping(value = "/.search")
+    public ScimSearchResult<ScimGroup> searchWithPost(@ModelAttribute ScimParameters requestParameters) {
         requestParameters.parse();
         _logger.debug("requestParameters {} ",requestParameters);
         Groups queryModel = new Groups();
@@ -128,7 +130,7 @@ public class ScimGroupController {
                         orgResults.getRecords(),
                         queryModel.getPageSize(),
                         requestParameters.getStartIndex());  
-        return new MappingJacksonValue(scimSearchResult);
+        return scimSearchResult;
     }
     
     public ScimGroup group2ScimGroup(Groups group) {

+ 17 - 15
maxkey-web-apis/maxkey-web-api-scim/src/main/java/org/dromara/maxkey/web/apis/identity/scim/ScimOrganizationController.java

@@ -33,12 +33,14 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.http.converter.json.MappingJacksonValue;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.RestController;
@@ -61,18 +63,18 @@ public class ScimOrganizationController {
     @Autowired
     OrganizationsService organizationsService;
     
-    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
-    public MappingJacksonValue get(@PathVariable String id,
+    @GetMapping(value = "/{id}")
+    public ScimOrganization get(@PathVariable String id,
                                        @RequestParam(required = false) String attributes) {
         _logger.debug("ScimOrganization id {} , attributes {}", id , attributes);
         Organizations    org = organizationsService.get(id);
         ScimOrganization     scimOrg = org2ScimOrg(org);
         
-        return new MappingJacksonValue(scimOrg);
+        return scimOrg;
     }
 
-    @RequestMapping(method = RequestMethod.POST)
-    public MappingJacksonValue create(@RequestBody  ScimOrganization scimOrg,
+    @PostMapping
+    public ScimOrganization create(@RequestBody  ScimOrganization scimOrg,
                                       @RequestParam(required = false) String attributes,
                                       UriComponentsBuilder builder) throws IOException {
         _logger.debug("ScimOrganization content {} , attributes {}", scimOrg , attributes);
@@ -81,8 +83,8 @@ public class ScimOrganizationController {
         return get(createOrg.getId(), attributes);
     }
 
-    @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
-    public MappingJacksonValue replace(@PathVariable String id,
+    @PutMapping(value = "/{id}")
+    public ScimOrganization replace(@PathVariable String id,
                                        @RequestBody ScimOrganization scimOrg,
                                        @RequestParam(required = false) String attributes)throws IOException {
         _logger.debug("ScimOrganization content {} , attributes {}", scimOrg , attributes);
@@ -91,20 +93,20 @@ public class ScimOrganizationController {
         return get(id, attributes);
     }
 
-    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
+    @DeleteMapping(value = "/{id}")
     @ResponseStatus(HttpStatus.OK)
     public void delete(@PathVariable final String id) {
         _logger.debug("ScimOrganization id {}", id );
         organizationsService.delete(id);
     }
 
-    @RequestMapping(method = RequestMethod.GET)
-    public MappingJacksonValue searchWithGet(@ModelAttribute ScimParameters requestParameters) {
+    @GetMapping
+    public ScimSearchResult<ScimOrganization> searchWithGet(@ModelAttribute ScimParameters requestParameters) {
         return searchWithPost(requestParameters);
     }
 
-    @RequestMapping(value = "/.search", method = RequestMethod.POST)
-    public MappingJacksonValue searchWithPost(@ModelAttribute ScimParameters requestParameters) {
+    @PostMapping(value = "/.search")
+    public ScimSearchResult<ScimOrganization> searchWithPost(@ModelAttribute ScimParameters requestParameters) {
         requestParameters.parse();
         _logger.debug("requestParameters {} ",requestParameters);
         Organizations queryModel = new Organizations();
@@ -123,7 +125,7 @@ public class ScimOrganizationController {
                         queryModel.getPageSize(),
                         requestParameters.getStartIndex());  
         
-        return new MappingJacksonValue(scimSearchResult);
+        return scimSearchResult;
     }
     
     public ScimOrganization org2ScimOrg(Organizations org) {

+ 3 - 1
maxkey-web-apis/maxkey-web-api-scim/src/main/java/org/dromara/maxkey/web/apis/identity/scim/ScimServiceProviderConfigController.java

@@ -18,6 +18,8 @@
 package org.dromara.maxkey.web.apis.identity.scim;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
+
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
@@ -32,7 +34,7 @@ public class ScimServiceProviderConfigController {
     public static final int MAX_RESULTS = 500;
     public static final int MAX_RESULTS_LIMIT = 5000;
     
-    @RequestMapping
+    @GetMapping
     @ResponseBody
     public ServiceProviderConfig getConfig() {
         return ServiceProviderConfig.INSTANCE;

+ 17 - 15
maxkey-web-apis/maxkey-web-api-scim/src/main/java/org/dromara/maxkey/web/apis/identity/scim/ScimUserController.java

@@ -44,12 +44,14 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.http.converter.json.MappingJacksonValue;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.RestController;
@@ -74,17 +76,17 @@ public class ScimUserController {
     @Autowired
     GroupsService groupsService;
     
-    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
-    public MappingJacksonValue get(@PathVariable String id,
+    @GetMapping(value = "/{id}")
+    public ScimUser get(@PathVariable String id,
                                        @RequestParam(required = false) String attributes) {
         _logger.debug("ScimUser id {} , attributes {}", id , attributes);
         UserInfo userInfo = userInfoService.get(id);
         ScimUser scimUser = userInfo2ScimUser(userInfo);
-        return new MappingJacksonValue(scimUser);
+        return scimUser;
     }
 
-    @RequestMapping(method = RequestMethod.POST)
-    public MappingJacksonValue create(@RequestBody  ScimUser user,
+    @PostMapping
+    public ScimUser create(@RequestBody  ScimUser user,
                                       @RequestParam(required = false) String attributes,
                                       UriComponentsBuilder builder) throws IOException {
         _logger.debug("ScimUser {} , attributes {}", user , attributes);
@@ -93,8 +95,8 @@ public class ScimUserController {
         return get(userInfo.getId(),attributes);
     }
 
-    @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
-    public MappingJacksonValue replace(@PathVariable String id,
+    @PutMapping(value = "/{id}")
+    public ScimUser replace(@PathVariable String id,
                                        @RequestBody ScimUser user,
                                        @RequestParam(required = false) String attributes)
             throws IOException {
@@ -104,20 +106,20 @@ public class ScimUserController {
         return get(id,attributes);
     }
 
-    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
+    @DeleteMapping(value = "/{id}")
     @ResponseStatus(HttpStatus.OK)
     public void delete(@PathVariable final String id) {
         _logger.debug("ScimUser id {} ", id );
         userInfoService.delete(id);
     }
 
-    @RequestMapping(method = RequestMethod.GET)
-    public MappingJacksonValue searchWithGet(@ModelAttribute ScimParameters requestParameters) {
+    @GetMapping
+    public ScimSearchResult<ScimUser> searchWithGet(@ModelAttribute ScimParameters requestParameters) {
         return searchWithPost(requestParameters);
     }
 
-    @RequestMapping(value = "/.search", method = RequestMethod.POST)
-    public MappingJacksonValue searchWithPost(@ModelAttribute ScimParameters requestParameters) {
+    @PostMapping(value = "/.search")
+    public ScimSearchResult<ScimUser> searchWithPost(@ModelAttribute ScimParameters requestParameters) {
         requestParameters.parse();
         _logger.debug("requestParameters {} ",requestParameters);
         UserInfo queryModel = new UserInfo();
@@ -135,7 +137,7 @@ public class ScimUserController {
                         orgResults.getRecords(),
                         queryModel.getPageSize(),
                         requestParameters.getStartIndex());  
-        return new MappingJacksonValue(scimSearchResult);
+        return scimSearchResult;
     }
     
     public ScimUser userInfo2ScimUser(UserInfo userInfo) {