1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.rest.cxf.service;
20
21 import java.time.OffsetDateTime;
22 import java.time.format.DateTimeFormatter;
23 import java.util.List;
24 import javax.ws.rs.core.Response;
25 import org.apache.commons.lang3.tuple.Pair;
26 import org.apache.syncope.common.lib.to.AccessTokenTO;
27 import org.apache.syncope.common.lib.to.PagedResult;
28 import org.apache.syncope.common.rest.api.RESTHeaders;
29 import org.apache.syncope.common.rest.api.beans.AccessTokenQuery;
30 import org.apache.syncope.common.rest.api.service.AccessTokenService;
31 import org.apache.syncope.core.logic.AccessTokenLogic;
32 import org.springframework.stereotype.Service;
33
34 @Service
35 public class AccessTokenServiceImpl extends AbstractService implements AccessTokenService {
36
37 protected final AccessTokenLogic logic;
38
39 public AccessTokenServiceImpl(final AccessTokenLogic logic) {
40 this.logic = logic;
41 }
42
43 @Override
44 public Response login() {
45 Pair<String, OffsetDateTime> login = logic.login();
46 return Response.noContent().
47 header(RESTHeaders.TOKEN, login.getLeft()).
48 header(RESTHeaders.TOKEN_EXPIRE, DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(login.getRight())).
49 build();
50 }
51
52 @Override
53 public Response refresh() {
54 Pair<String, OffsetDateTime> refresh = logic.refresh();
55 return Response.noContent().
56 header(RESTHeaders.TOKEN, refresh.getLeft()).
57 header(RESTHeaders.TOKEN_EXPIRE, DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(refresh.getRight())).
58 build();
59 }
60
61 @Override
62 public void logout() {
63 logic.logout();
64 }
65
66 @Override
67 public PagedResult<AccessTokenTO> list(final AccessTokenQuery query) {
68 Pair<Integer, List<AccessTokenTO>> result = logic.list(
69 query.getPage(),
70 query.getSize(),
71 getOrderByClauses(query.getOrderBy()));
72 return buildPagedResult(result.getRight(), query.getPage(), query.getSize(), result.getLeft());
73 }
74
75 @Override
76 public void delete(final String key) {
77 logic.delete(key);
78 }
79
80 }