1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.logic;
20
21 import org.apache.syncope.common.keymaster.client.api.ServiceOps;
22 import org.apache.syncope.core.logic.init.AMEntitlementLoader;
23 import org.apache.syncope.core.logic.wa.GoogleMfaAuthAccountLogic;
24 import org.apache.syncope.core.logic.wa.GoogleMfaAuthTokenLogic;
25 import org.apache.syncope.core.logic.wa.ImpersonationLogic;
26 import org.apache.syncope.core.logic.wa.MfaTrusStorageLogic;
27 import org.apache.syncope.core.logic.wa.U2FRegistrationLogic;
28 import org.apache.syncope.core.logic.wa.WAClientAppLogic;
29 import org.apache.syncope.core.logic.wa.WAConfigLogic;
30 import org.apache.syncope.core.logic.wa.WebAuthnRegistrationLogic;
31 import org.apache.syncope.core.persistence.api.dao.AttrRepoDAO;
32 import org.apache.syncope.core.persistence.api.dao.AuthModuleDAO;
33 import org.apache.syncope.core.persistence.api.dao.AuthProfileDAO;
34 import org.apache.syncope.core.persistence.api.dao.CASSPClientAppDAO;
35 import org.apache.syncope.core.persistence.api.dao.OIDCJWKSDAO;
36 import org.apache.syncope.core.persistence.api.dao.OIDCRPClientAppDAO;
37 import org.apache.syncope.core.persistence.api.dao.SAML2IdPEntityDAO;
38 import org.apache.syncope.core.persistence.api.dao.SAML2SPClientAppDAO;
39 import org.apache.syncope.core.persistence.api.dao.SAML2SPEntityDAO;
40 import org.apache.syncope.core.persistence.api.dao.SRARouteDAO;
41 import org.apache.syncope.core.persistence.api.dao.WAConfigDAO;
42 import org.apache.syncope.core.persistence.api.entity.EntityFactory;
43 import org.apache.syncope.core.persistence.api.entity.am.ClientAppUtilsFactory;
44 import org.apache.syncope.core.provisioning.api.data.AttrRepoDataBinder;
45 import org.apache.syncope.core.provisioning.api.data.AuthModuleDataBinder;
46 import org.apache.syncope.core.provisioning.api.data.AuthProfileDataBinder;
47 import org.apache.syncope.core.provisioning.api.data.ClientAppDataBinder;
48 import org.apache.syncope.core.provisioning.api.data.OIDCJWKSDataBinder;
49 import org.apache.syncope.core.provisioning.api.data.SAML2IdPEntityDataBinder;
50 import org.apache.syncope.core.provisioning.api.data.SAML2SPEntityDataBinder;
51 import org.apache.syncope.core.provisioning.api.data.SRARouteDataBinder;
52 import org.apache.syncope.core.provisioning.api.data.WAConfigDataBinder;
53 import org.apache.syncope.core.provisioning.api.data.wa.WAClientAppDataBinder;
54 import org.apache.syncope.core.spring.security.SecurityProperties;
55 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
56 import org.springframework.context.annotation.Bean;
57 import org.springframework.context.annotation.Configuration;
58
59 @Configuration(proxyBeanMethods = false)
60 public class AMLogicContext {
61
62 @ConditionalOnMissingBean
63 @Bean
64 public AMEntitlementLoader amEntitlementLoader() {
65 return new AMEntitlementLoader();
66 }
67
68 @ConditionalOnMissingBean
69 @Bean
70 public AuthModuleLogic authModuleLogic(
71 final AuthModuleDataBinder binder,
72 final AuthModuleDAO authModuleDAO) {
73
74 return new AuthModuleLogic(binder, authModuleDAO);
75 }
76
77 @ConditionalOnMissingBean
78 @Bean
79 public AttrRepoLogic attrRepoLogic(
80 final AttrRepoDataBinder binder,
81 final AttrRepoDAO attrRepoDAO) {
82
83 return new AttrRepoLogic(binder, attrRepoDAO);
84 }
85
86 @ConditionalOnMissingBean
87 @Bean
88 public AuthProfileLogic authProfileLogic(
89 final AuthProfileDAO authProfileDAO,
90 final AuthProfileDataBinder authProfileDataBinder) {
91
92 return new AuthProfileLogic(authProfileDAO, authProfileDataBinder);
93 }
94
95 @ConditionalOnMissingBean
96 @Bean
97 public ClientAppLogic clientAppLogic(
98 final ServiceOps serviceOps,
99 final ClientAppUtilsFactory clientAppUtilsFactory,
100 final ClientAppDataBinder binder,
101 final CASSPClientAppDAO casSPClientAppDAO,
102 final OIDCRPClientAppDAO oidcRPClientAppDAO,
103 final SAML2SPClientAppDAO saml2SPClientAppDAO) {
104
105 return new ClientAppLogic(
106 serviceOps,
107 clientAppUtilsFactory,
108 binder,
109 casSPClientAppDAO,
110 oidcRPClientAppDAO,
111 saml2SPClientAppDAO);
112 }
113
114 @ConditionalOnMissingBean
115 @Bean
116 public OIDCJWKSLogic oidcJWKSLogic(
117 final OIDCJWKSDataBinder binder,
118 final OIDCJWKSDAO dao) {
119
120 return new OIDCJWKSLogic(binder, dao);
121 }
122
123 @ConditionalOnMissingBean
124 @Bean
125 public SAML2IdPEntityLogic saml2IdPEntityLogic(
126 final SAML2IdPEntityDataBinder binder,
127 final SAML2IdPEntityDAO entityDAO) {
128
129 return new SAML2IdPEntityLogic(binder, entityDAO);
130 }
131
132 @ConditionalOnMissingBean
133 @Bean
134 public SAML2SPEntityLogic saml2SPEntityLogic(
135 final SAML2SPEntityDataBinder binder,
136 final SAML2SPEntityDAO entityDAO) {
137
138 return new SAML2SPEntityLogic(binder, entityDAO);
139 }
140
141 @ConditionalOnMissingBean
142 @Bean
143 public SRARouteLogic sraRouteLogic(
144 final EntityFactory entityFactory,
145 final ServiceOps serviceOps,
146 final SecurityProperties securityProperties,
147 final SRARouteDAO routeDAO,
148 final SRARouteDataBinder binder) {
149
150 return new SRARouteLogic(routeDAO, binder, entityFactory, serviceOps, securityProperties);
151 }
152
153 @ConditionalOnMissingBean
154 @Bean
155 public GoogleMfaAuthAccountLogic googleMfaAuthAccountLogic(
156 final AuthProfileDAO authProfileDAO,
157 final AuthProfileDataBinder authProfileDataBinder,
158 final EntityFactory entityFactory) {
159
160 return new GoogleMfaAuthAccountLogic(entityFactory, authProfileDAO, authProfileDataBinder);
161 }
162
163 @ConditionalOnMissingBean
164 @Bean
165 public GoogleMfaAuthTokenLogic googleMfaAuthTokenLogic(
166 final AuthProfileDAO authProfileDAO,
167 final AuthProfileDataBinder authProfileDataBinder,
168 final EntityFactory entityFactory) {
169
170 return new GoogleMfaAuthTokenLogic(entityFactory, authProfileDAO, authProfileDataBinder);
171 }
172
173 @ConditionalOnMissingBean
174 @Bean
175 public ImpersonationLogic impersonationLogic(
176 final AuthProfileDAO authProfileDAO,
177 final AuthProfileDataBinder authProfileDataBinder,
178 final EntityFactory entityFactory) {
179
180 return new ImpersonationLogic(entityFactory, authProfileDAO, authProfileDataBinder);
181 }
182
183 @ConditionalOnMissingBean
184 @Bean
185 public U2FRegistrationLogic u2fRegistrationLogic(
186 final AuthProfileDAO authProfileDAO,
187 final AuthProfileDataBinder authProfileDataBinder,
188 final EntityFactory entityFactory) {
189
190 return new U2FRegistrationLogic(entityFactory, authProfileDAO, authProfileDataBinder);
191 }
192
193 @ConditionalOnMissingBean
194 @Bean
195 public MfaTrusStorageLogic mfaTrusStorageLogic(
196 final AuthProfileDAO authProfileDAO,
197 final AuthProfileDataBinder authProfileDataBinder,
198 final EntityFactory entityFactory) {
199
200 return new MfaTrusStorageLogic(entityFactory, authProfileDAO, authProfileDataBinder);
201 }
202
203 @ConditionalOnMissingBean
204 @Bean
205 public WAClientAppLogic waClientAppLogic(
206 final WAClientAppDataBinder binder,
207 final CASSPClientAppDAO casSPClientAppDAO,
208 final OIDCRPClientAppDAO oidcRPClientAppDAO,
209 final SAML2SPClientAppDAO saml2SPClientAppDAO) {
210
211 return new WAClientAppLogic(binder, casSPClientAppDAO, oidcRPClientAppDAO, saml2SPClientAppDAO);
212 }
213
214 @ConditionalOnMissingBean
215 @Bean
216 public WAConfigLogic waConfigLogic(
217 final ServiceOps serviceOps,
218 final SecurityProperties securityProperties,
219 final WAConfigDataBinder binder,
220 final WAConfigDAO waConfigDAO) {
221
222 return new WAConfigLogic(serviceOps, binder, waConfigDAO, securityProperties);
223 }
224
225 @ConditionalOnMissingBean
226 @Bean
227 public WebAuthnRegistrationLogic webAuthnRegistrationLogic(
228 final AuthProfileDAO authProfileDAO,
229 final AuthProfileDataBinder authProfileDataBinder,
230 final EntityFactory entityFactory) {
231
232 return new WebAuthnRegistrationLogic(entityFactory, authProfileDAO, authProfileDataBinder);
233 }
234 }