1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.keymaster.internal;
20
21 import java.util.List;
22 import org.apache.syncope.common.keymaster.client.api.DomainOps;
23 import org.apache.syncope.common.keymaster.client.api.KeymasterProperties;
24 import org.apache.syncope.common.keymaster.client.api.model.Domain;
25 import org.apache.syncope.common.lib.SyncopeConstants;
26 import org.apache.syncope.common.lib.types.CipherAlgorithm;
27 import org.apache.syncope.core.logic.DomainLogic;
28 import org.apache.syncope.core.spring.security.AuthContextUtils;
29
30 public class SelfKeymasterInternalDomainOps implements DomainOps {
31
32 protected final DomainLogic logic;
33
34 protected final KeymasterProperties props;
35
36 public SelfKeymasterInternalDomainOps(final DomainLogic logic, final KeymasterProperties props) {
37 this.logic = logic;
38 this.props = props;
39 }
40
41 @Override
42 public List<Domain> list() {
43 return AuthContextUtils.callAs(
44 SyncopeConstants.MASTER_DOMAIN,
45 props.getUsername(),
46 List.of(),
47 () -> logic.list());
48 }
49
50 @Override
51 public Domain read(final String key) {
52 return AuthContextUtils.callAs(
53 SyncopeConstants.MASTER_DOMAIN,
54 props.getUsername(),
55 List.of(),
56 () -> logic.read(key));
57 }
58
59 @Override
60 public void create(final Domain domain) {
61 AuthContextUtils.callAs(SyncopeConstants.MASTER_DOMAIN, props.getUsername(), List.of(), () -> {
62 logic.create(domain);
63 return null;
64 });
65 }
66
67 @Override
68 public void changeAdminPassword(final String key, final String password, final CipherAlgorithm cipherAlgorithm) {
69 AuthContextUtils.callAs(SyncopeConstants.MASTER_DOMAIN, props.getUsername(), List.of(), () -> {
70 logic.changeAdminPassword(key, password, cipherAlgorithm);
71 return null;
72 });
73 }
74
75 @Override
76 public void adjustPoolSize(final String key, final int maxPoolSize, final int minIdle) {
77 AuthContextUtils.callAs(SyncopeConstants.MASTER_DOMAIN, props.getUsername(), List.of(), () -> {
78 logic.adjustPoolSize(props.getUsername(), maxPoolSize, minIdle);
79 return null;
80 });
81 }
82
83 @Override
84 public void delete(final String key) {
85 AuthContextUtils.callAs(SyncopeConstants.MASTER_DOMAIN, props.getUsername(), List.of(), () -> {
86 logic.delete(key);
87 return null;
88 });
89 }
90 }