00018 client_details list

0.3
lishengzhao 2015-05-25 11:07:43 +08:00
parent c760b5ab8b
commit 56b0027984
8 changed files with 81 additions and 62 deletions

View File

@ -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<OauthClientDetailsDto> toDtos(List<OauthClientDetails> clientDetailses) {
List<OauthClientDetailsDto> dtos = new ArrayList<>(clientDetailses.size());
for (OauthClientDetails clientDetailse : clientDetailses) {
dtos.add(new OauthClientDetailsDto(clientDetailse));
}
return dtos;
}
}

View File

@ -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<OauthClientDetails> findAllOauthClientDetails();
}

View File

@ -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<OauthClientDetailsDto> loadAllOauthClientDetailsDtos();
}

View File

@ -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<OauthClientDetailsDto> loadAllOauthClientDetailsDtos() {
List<OauthClientDetails> clientDetailses = oauthRepository.findAllOauthClientDetails();
return OauthClientDetailsDto.toDtos(clientDetailses);
}
}

View File

@ -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<OauthClientDetailsDto> clientDetailsDtoList = oauthService.loadAllOauthClientDetailsDtos();
model.addAttribute("clientDetailsDtoList", clientDetailsDtoList);
return "clientdetails/client_details";
}

View File

@ -29,5 +29,9 @@
where client_id = #{clientId}
</select>
<select id="findAllOauthClientDetails" resultMap="oauthClientDetailsMap">
select * from oauth_client_details
</select>
</mapper>

View File

@ -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" %>
<!DOCTYPE HTML>
<html>
<head>
@ -33,69 +35,42 @@
<div>
<ul class="list-group">
<li class="list-group-item">
<div class="pull-right">
<a href="#">test</a>
<a href="#" class="text-danger">delete</a>
</div>
<h3 class="list-group-item-heading">
mobile-client
<small>password,refresh_token</small>
</h3>
<c:forEach items="${clientDetailsDtoList}" var="cli">
<li class="list-group-item">
<div class="pull-right">
<a href="test_client/${cli.clientId}">test</a>
<a href="archive_client/${cli.clientId}" class="text-danger">archive</a>
</div>
<h3 class="list-group-item-heading">
${cli.clientId}
<small>${cli.authorizedGrantTypes}</small>
</h3>
<div class="list-group-item-text text-muted">
client_id: <span class="text-danger">mobile-client</span>&nbsp;
client_secret: <span class="text-primary">mobile</span>&nbsp;
<br/>
authorized_grant_types: <span class="text-primary">password,refresh_token</span>&nbsp;
resource_ids: <span class="text-primary">mobile-resource</span>&nbsp;
<br/>
scope: <span class="text-primary">read,write</span>&nbsp;
web_server_redirect_uri: <span class="text-primary">...</span>&nbsp;
<br/>
authorities: <span class="text-primary">ROLE_CLIENT</span>&nbsp;
access_token_validity: <span class="text-primary">...</span>&nbsp;
refresh_token_validity: <span class="text-primary">...</span>&nbsp;
<br/>
create_time: <span class="text-primary">2015-05-08 21:12:22</span>&nbsp;
archived: <span class="text-primary">false</span>&nbsp;
trusted: <span class="text-primary">false</span>&nbsp;
additional_information: <span class="text-primary">...</span>&nbsp;
</div>
</li>
<li class="list-group-item">
<div class="pull-right">
<a href="#">test</a>
<a href="#" class="text-danger">delete</a>
</div>
<h3 class="list-group-item-heading">
unity-client
<small>authorization_code,refresh_token,implicit</small>
</h3>
<div class="list-group-item-text text-muted">
client_id: <span class="text-danger">${cli.clientId}</span>&nbsp;
client_secret: <span class="text-primary">${cli.clientSecret}</span>&nbsp;
<br/>
authorized_grant_types: <span class="text-primary">${cli.authorizedGrantTypes}</span>&nbsp;
resource_ids: <span class="text-primary">${cli.resourceIds}</span>&nbsp;
<br/>
scope: <span class="text-primary">${cli.scope}</span>&nbsp;
web_server_redirect_uri: <span class="text-primary">${cli.webServerRedirectUri}</span>&nbsp;
<br/>
authorities: <span class="text-primary">${cli.authorities}</span>&nbsp;
access_token_validity: <span class="text-primary">${cli.accessTokenValidity}</span>&nbsp;
refresh_token_validity: <span class="text-primary">${cli.refreshTokenValidity}</span>&nbsp;
<br/>
create_time: <span class="text-primary">${cli.createTime}</span>&nbsp;
archived: <span class="${cli.archived?'text-warning':'text-primary'}">${cli.archived}</span>&nbsp;
trusted: <span class="text-primary">${cli.trusted}</span>&nbsp;
additional_information: <span class="text-primary">${cli.additionalInformation}</span>&nbsp;
</div>
</li>
</c:forEach>
<div class="list-group-item-text text-muted">
client_id: <span class="text-danger">unity-client</span>&nbsp;
client_secret: <span class="text-primary">unity</span>&nbsp;
<br/>
authorized_grant_types: <span class="text-primary">authorization_code,refresh_token,implicit</span>&nbsp;
resource_ids: <span class="text-primary">unity-resource</span>&nbsp;
<br/>
scope: <span class="text-primary">read,write</span>&nbsp;
web_server_redirect_uri: <span class="text-primary">...</span>&nbsp;
<br/>
authorities: <span class="text-primary">ROLE_CLIENT</span>&nbsp;
access_token_validity: <span class="text-primary">...</span>&nbsp;
refresh_token_validity: <span class="text-primary">...</span>&nbsp;
<br/>
create_time: <span class="text-primary">2015-05-08 21:12:22</span>&nbsp;
archived: <span class="text-primary">false</span>&nbsp;
trusted: <span class="text-primary">false</span>&nbsp;
additional_information: <span class="text-primary">...</span>&nbsp;
</div>
</li>
</ul>
<p class="help-block">
每一个item对应<code>oauth_client_details</code>表中的一条数据.
每一个item对应<code>oauth_client_details</code>表中的一条数据; 共<strong>${fun:length(clientDetailsDtoList)}</strong>条数据.
</p>
</div>
</body>

View File

@ -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<OauthClientDetails> allOauthClientDetails = oauthRepositoryMyBatis.findAllOauthClientDetails();
assertNotNull(allOauthClientDetails);
assertTrue(allOauthClientDetails.isEmpty());
}
}