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 cc.wdcy.infrastructure.DateUtils;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/** /**
* @author Shengzhao Li * @author Shengzhao Li
@ -163,4 +165,12 @@ public class OauthClientDetailsDto implements Serializable {
public void setTrusted(boolean trusted) { public void setTrusted(boolean trusted) {
this.trusted = 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 cc.wdcy.domain.shared.Repository;
import java.util.List;
/** /**
* @author Shengzhao Li * @author Shengzhao Li
*/ */
public interface OauthRepository extends Repository { public interface OauthRepository extends Repository {
OauthClientDetails findOauthClientDetails(String clientId); OauthClientDetails findOauthClientDetails(String clientId);
List<OauthClientDetails> findAllOauthClientDetails();
} }

View File

@ -1,7 +1,10 @@
package cc.wdcy.service; package cc.wdcy.service;
import cc.wdcy.domain.dto.OauthClientDetailsDto;
import cc.wdcy.domain.oauth.OauthClientDetails; import cc.wdcy.domain.oauth.OauthClientDetails;
import java.util.List;
/** /**
* @author Shengzhao Li * @author Shengzhao Li
*/ */
@ -9,4 +12,6 @@ import cc.wdcy.domain.oauth.OauthClientDetails;
public interface OauthService { public interface OauthService {
OauthClientDetails loadOauthClientDetails(String clientId); OauthClientDetails loadOauthClientDetails(String clientId);
List<OauthClientDetailsDto> loadAllOauthClientDetailsDtos();
} }

View File

@ -1,11 +1,14 @@
package cc.wdcy.service.impl; package cc.wdcy.service.impl;
import cc.wdcy.domain.dto.OauthClientDetailsDto;
import cc.wdcy.domain.oauth.OauthClientDetails; import cc.wdcy.domain.oauth.OauthClientDetails;
import cc.wdcy.domain.oauth.OauthRepository; import cc.wdcy.domain.oauth.OauthRepository;
import cc.wdcy.service.OauthService; import cc.wdcy.service.OauthService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* @author Shengzhao Li * @author Shengzhao Li
*/ */
@ -19,4 +22,10 @@ public class OauthServiceImpl implements OauthService {
public OauthClientDetails loadOauthClientDetails(String clientId) { public OauthClientDetails loadOauthClientDetails(String clientId) {
return oauthRepository.findOauthClientDetails(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; package cc.wdcy.web.controller;
import cc.wdcy.domain.dto.OauthClientDetailsDto;
import cc.wdcy.service.OauthService; import cc.wdcy.service.OauthService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
/** /**
* Handle 'client_details' management * Handle 'client_details' management
* *
@ -21,8 +24,8 @@ public class ClientDetailsController {
@RequestMapping("client_details") @RequestMapping("client_details")
public String clientDetails(Model model) { public String clientDetails(Model model) {
List<OauthClientDetailsDto> clientDetailsDtoList = oauthService.loadAllOauthClientDetailsDtos();
model.addAttribute("clientDetailsDtoList", clientDetailsDtoList);
return "clientdetails/client_details"; return "clientdetails/client_details";
} }

View File

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

View File

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

View File

@ -6,7 +6,9 @@ import cc.wdcy.infrastructure.AbstractRepositoryTest;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import static org.testng.Assert.assertNull; import java.util.List;
import static org.testng.Assert.*;
/** /**
* @author Shengzhao Li * @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());
}
} }