From 56b0027984124274e21560820b39a369bbe36417 Mon Sep 17 00:00:00 2001 From: lishengzhao Date: Mon, 25 May 2015 11:07:43 +0800 Subject: [PATCH] 00018 client_details list --- .../domain/dto/OauthClientDetailsDto.java | 10 ++ .../cc/wdcy/domain/oauth/OauthRepository.java | 4 + .../java/cc/wdcy/service/OauthService.java | 5 + .../wdcy/service/impl/OauthServiceImpl.java | 9 ++ .../controller/ClientDetailsController.java | 7 +- .../infrastructure/mybatis/OauthMapper.xml | 4 + .../jsp/clientdetails/client_details.jsp | 93 +++++++------------ .../mybatis/OauthRepositoryMyBatisTest.java | 11 ++- 8 files changed, 81 insertions(+), 62 deletions(-) diff --git a/src/main/java/cc/wdcy/domain/dto/OauthClientDetailsDto.java b/src/main/java/cc/wdcy/domain/dto/OauthClientDetailsDto.java index 5073d30..4599689 100644 --- a/src/main/java/cc/wdcy/domain/dto/OauthClientDetailsDto.java +++ b/src/main/java/cc/wdcy/domain/dto/OauthClientDetailsDto.java @@ -4,6 +4,8 @@ import cc.wdcy.domain.oauth.OauthClientDetails; import cc.wdcy.infrastructure.DateUtils; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; /** * @author Shengzhao Li @@ -163,4 +165,12 @@ public class OauthClientDetailsDto implements Serializable { public void setTrusted(boolean trusted) { this.trusted = trusted; } + + public static List toDtos(List clientDetailses) { + List dtos = new ArrayList<>(clientDetailses.size()); + for (OauthClientDetails clientDetailse : clientDetailses) { + dtos.add(new OauthClientDetailsDto(clientDetailse)); + } + return dtos; + } } \ No newline at end of file diff --git a/src/main/java/cc/wdcy/domain/oauth/OauthRepository.java b/src/main/java/cc/wdcy/domain/oauth/OauthRepository.java index 25de8cb..ac83f30 100644 --- a/src/main/java/cc/wdcy/domain/oauth/OauthRepository.java +++ b/src/main/java/cc/wdcy/domain/oauth/OauthRepository.java @@ -2,10 +2,14 @@ package cc.wdcy.domain.oauth; import cc.wdcy.domain.shared.Repository; +import java.util.List; + /** * @author Shengzhao Li */ public interface OauthRepository extends Repository { OauthClientDetails findOauthClientDetails(String clientId); + + List findAllOauthClientDetails(); } \ No newline at end of file diff --git a/src/main/java/cc/wdcy/service/OauthService.java b/src/main/java/cc/wdcy/service/OauthService.java index f54da1b..677b306 100644 --- a/src/main/java/cc/wdcy/service/OauthService.java +++ b/src/main/java/cc/wdcy/service/OauthService.java @@ -1,7 +1,10 @@ package cc.wdcy.service; +import cc.wdcy.domain.dto.OauthClientDetailsDto; import cc.wdcy.domain.oauth.OauthClientDetails; +import java.util.List; + /** * @author Shengzhao Li */ @@ -9,4 +12,6 @@ import cc.wdcy.domain.oauth.OauthClientDetails; public interface OauthService { OauthClientDetails loadOauthClientDetails(String clientId); + + List loadAllOauthClientDetailsDtos(); } \ No newline at end of file diff --git a/src/main/java/cc/wdcy/service/impl/OauthServiceImpl.java b/src/main/java/cc/wdcy/service/impl/OauthServiceImpl.java index d879111..7b89270 100644 --- a/src/main/java/cc/wdcy/service/impl/OauthServiceImpl.java +++ b/src/main/java/cc/wdcy/service/impl/OauthServiceImpl.java @@ -1,11 +1,14 @@ package cc.wdcy.service.impl; +import cc.wdcy.domain.dto.OauthClientDetailsDto; import cc.wdcy.domain.oauth.OauthClientDetails; import cc.wdcy.domain.oauth.OauthRepository; import cc.wdcy.service.OauthService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author Shengzhao Li */ @@ -19,4 +22,10 @@ public class OauthServiceImpl implements OauthService { public OauthClientDetails loadOauthClientDetails(String clientId) { return oauthRepository.findOauthClientDetails(clientId); } + + @Override + public List loadAllOauthClientDetailsDtos() { + List clientDetailses = oauthRepository.findAllOauthClientDetails(); + return OauthClientDetailsDto.toDtos(clientDetailses); + } } \ No newline at end of file diff --git a/src/main/java/cc/wdcy/web/controller/ClientDetailsController.java b/src/main/java/cc/wdcy/web/controller/ClientDetailsController.java index 22d215c..dcd3389 100644 --- a/src/main/java/cc/wdcy/web/controller/ClientDetailsController.java +++ b/src/main/java/cc/wdcy/web/controller/ClientDetailsController.java @@ -1,11 +1,14 @@ package cc.wdcy.web.controller; +import cc.wdcy.domain.dto.OauthClientDetailsDto; import cc.wdcy.service.OauthService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.List; + /** * Handle 'client_details' management * @@ -21,8 +24,8 @@ public class ClientDetailsController { @RequestMapping("client_details") public String clientDetails(Model model) { - - + List clientDetailsDtoList = oauthService.loadAllOauthClientDetailsDtos(); + model.addAttribute("clientDetailsDtoList", clientDetailsDtoList); return "clientdetails/client_details"; } diff --git a/src/main/resources/cc/wdcy/infrastructure/mybatis/OauthMapper.xml b/src/main/resources/cc/wdcy/infrastructure/mybatis/OauthMapper.xml index 2d47f0b..2df6601 100644 --- a/src/main/resources/cc/wdcy/infrastructure/mybatis/OauthMapper.xml +++ b/src/main/resources/cc/wdcy/infrastructure/mybatis/OauthMapper.xml @@ -29,5 +29,9 @@ where client_id = #{clientId} + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/clientdetails/client_details.jsp b/src/main/webapp/WEB-INF/jsp/clientdetails/client_details.jsp index 2b1882b..5e9c740 100644 --- a/src/main/webapp/WEB-INF/jsp/clientdetails/client_details.jsp +++ b/src/main/webapp/WEB-INF/jsp/clientdetails/client_details.jsp @@ -4,6 +4,8 @@ --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fun" uri="http://java.sun.com/jsp/jstl/functions" %> @@ -33,69 +35,42 @@
    -
  • -
    - test - delete -
    -

    - mobile-client - password,refresh_token -

    + +
  • +
    + test + archive +
    +

    + ${cli.clientId} + ${cli.authorizedGrantTypes} +

    -
    - client_id: mobile-client  - client_secret: mobile  -
    - authorized_grant_types: password,refresh_token  - resource_ids: mobile-resource  -
    - scope: read,write  - web_server_redirect_uri: ...  -
    - authorities: ROLE_CLIENT  - access_token_validity: ...  - refresh_token_validity: ...  -
    - create_time: 2015-05-08 21:12:22  - archived: false  - trusted: false  - additional_information: ...  -
    -
  • -
  • -
    - test - delete -
    -

    - unity-client - authorization_code,refresh_token,implicit -

    +
    + client_id: ${cli.clientId}  + client_secret: ${cli.clientSecret}  +
    + authorized_grant_types: ${cli.authorizedGrantTypes}  + resource_ids: ${cli.resourceIds}  +
    + scope: ${cli.scope}  + web_server_redirect_uri: ${cli.webServerRedirectUri}  +
    + authorities: ${cli.authorities}  + access_token_validity: ${cli.accessTokenValidity}  + refresh_token_validity: ${cli.refreshTokenValidity}  +
    + create_time: ${cli.createTime}  + archived: ${cli.archived}  + trusted: ${cli.trusted}  + additional_information: ${cli.additionalInformation}  +
    +
  • + -
    - client_id: unity-client  - client_secret: unity  -
    - authorized_grant_types: authorization_code,refresh_token,implicit  - resource_ids: unity-resource  -
    - scope: read,write  - web_server_redirect_uri: ...  -
    - authorities: ROLE_CLIENT  - access_token_validity: ...  - refresh_token_validity: ...  -
    - create_time: 2015-05-08 21:12:22  - archived: false  - trusted: false  - additional_information: ...  -
    -

- 每一个item对应oauth_client_details表中的一条数据. + 每一个item对应oauth_client_details表中的一条数据; 共${fun:length(clientDetailsDtoList)}条数据.

diff --git a/src/test/java/cc/wdcy/infrastructure/mybatis/OauthRepositoryMyBatisTest.java b/src/test/java/cc/wdcy/infrastructure/mybatis/OauthRepositoryMyBatisTest.java index b0c8383..1830c3a 100644 --- a/src/test/java/cc/wdcy/infrastructure/mybatis/OauthRepositoryMyBatisTest.java +++ b/src/test/java/cc/wdcy/infrastructure/mybatis/OauthRepositoryMyBatisTest.java @@ -6,7 +6,9 @@ import cc.wdcy.infrastructure.AbstractRepositoryTest; import org.springframework.beans.factory.annotation.Autowired; import org.testng.annotations.Test; -import static org.testng.Assert.assertNull; +import java.util.List; + +import static org.testng.Assert.*; /** * @author Shengzhao Li @@ -25,4 +27,11 @@ public class OauthRepositoryMyBatisTest extends AbstractRepositoryTest { } + @Test + public void findAllOauthClientDetails() { + final List allOauthClientDetails = oauthRepositoryMyBatis.findAllOauthClientDetails(); + assertNotNull(allOauthClientDetails); + assertTrue(allOauthClientDetails.isEmpty()); + } + } \ No newline at end of file