1 package net.avcompris.examples.users3.core.impl;
2
3 import static net.avcompris.examples.shared3.Permission.ANY;
4 import static net.avcompris.examples.shared3.Permission.GET_ANY_USER_SESSION;
5 import static net.avcompris.examples.shared3.Permission.GET_MY_SESSION;
6 import static net.avcompris.examples.shared3.Permission.SET_LAST_ACTIVE_AT;
7 import static net.avcompris.examples.shared3.Permission.TERMINATE_ANY_USER_SESSION;
8 import static net.avcompris.examples.shared3.Permission.TERMINATE_MY_SESSION;
9
10 import javax.annotation.Nullable;
11
12 import net.avcompris.commons3.api.User;
13 import net.avcompris.commons3.api.UserSession;
14 import net.avcompris.commons3.api.UserSessions;
15 import net.avcompris.commons3.api.UserSessionsQuery;
16 import net.avcompris.commons3.api.exception.ServiceException;
17 import net.avcompris.commons3.core.AuthService;
18 import net.avcompris.examples.shared3.core.api.Permissions;
19
20 public interface MyAuthService extends AuthService {
21
22 @Permissions(ANY)
23 @Nullable
24 UserSessionsQuery validateUserSessionsQuery(String correlationId, User user,
25 @Nullable String q,
26 @Nullable String sort,
27 @Nullable Integer start,
28 @Nullable Integer limit,
29 @Nullable String expand
30 ) throws ServiceException;
31
32 @Permissions(GET_ANY_USER_SESSION)
33 @Override
34 UserSessions getUserSessions(String correlationId, User user,
35 @Nullable UserSessionsQuery query
36 ) throws ServiceException;
37
38 @Permissions(ANY)
39 @Nullable
40 @Override
41 User getAuthenticatedUser(@Nullable String authorization, @Nullable String userSessionId) throws ServiceException;
42
43 @Permissions(ANY)
44 @Nullable
45 @Override
46 UserSession authenticate(String correlationId, String username, String password) throws ServiceException;
47
48 @Permissions(SET_LAST_ACTIVE_AT)
49 @Override
50 void setLastActiveAt(String correlationId, User user) throws ServiceException;
51
52 @Permissions(GET_ANY_USER_SESSION)
53 @Override
54 UserSession getUserSession(String correlationId, User user, String userSessionId) throws ServiceException;
55
56 @Permissions(TERMINATE_ANY_USER_SESSION)
57 @Override
58 UserSession terminateUserSession(String correlationId, User user, String userSessionId) throws ServiceException;
59
60 @Permissions(GET_MY_SESSION)
61 @Override
62 UserSession getMySession(String correlationId, User user, String userSessionId) throws ServiceException;
63
64 @Permissions(TERMINATE_MY_SESSION)
65 @Override
66 UserSession terminateMySession(String correlationId, User user, String userSessionId) throws ServiceException;
67 }