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.core.logic.init.OIDCC4UILoader;
22 import org.apache.syncope.core.logic.oidc.OIDCClientCache;
23 import org.apache.syncope.core.logic.oidc.OIDCUserManager;
24 import org.apache.syncope.core.persistence.api.dao.ImplementationDAO;
25 import org.apache.syncope.core.persistence.api.dao.OIDCC4UIProviderDAO;
26 import org.apache.syncope.core.persistence.api.dao.UserDAO;
27 import org.apache.syncope.core.provisioning.api.IntAttrNameParser;
28 import org.apache.syncope.core.provisioning.api.UserProvisioningManager;
29 import org.apache.syncope.core.provisioning.api.data.AccessTokenDataBinder;
30 import org.apache.syncope.core.provisioning.api.data.OIDCC4UIProviderDataBinder;
31 import org.apache.syncope.core.provisioning.api.data.UserDataBinder;
32 import org.apache.syncope.core.provisioning.java.pushpull.InboundMatcher;
33 import org.apache.syncope.core.provisioning.java.utils.TemplateUtils;
34 import org.apache.syncope.core.spring.security.AuthDataAccessor;
35 import org.springframework.beans.factory.annotation.Qualifier;
36 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
37 import org.springframework.context.annotation.Bean;
38 import org.springframework.context.annotation.Configuration;
39
40 @Configuration(proxyBeanMethods = false)
41 public class OIDCC4UILogicContext {
42
43 @ConditionalOnMissingBean(name = "oidcClientCacheLogin")
44 @Bean
45 public OIDCClientCache oidcClientCacheLogin() {
46 return new OIDCClientCache();
47 }
48
49 @ConditionalOnMissingBean(name = "oidcClientCacheLogout")
50 @Bean
51 public OIDCClientCache oidcClientCacheLogout() {
52 return new OIDCClientCache();
53 }
54
55 @ConditionalOnMissingBean
56 @Bean
57 public OIDCC4UILoader oidcc4UILoader() {
58 return new OIDCC4UILoader();
59 }
60
61 @ConditionalOnMissingBean
62 @Bean
63 public OIDCUserManager oidcUserManager(
64 final InboundMatcher inboundMatcher,
65 final UserDAO userDAO,
66 final ImplementationDAO implementationDAO,
67 final IntAttrNameParser intAttrNameParser,
68 final TemplateUtils templateUtils,
69 final UserProvisioningManager provisioningManager,
70 final UserDataBinder binder) {
71
72 return new OIDCUserManager(
73 inboundMatcher,
74 userDAO,
75 implementationDAO,
76 intAttrNameParser,
77 templateUtils,
78 provisioningManager,
79 binder);
80 }
81
82 @ConditionalOnMissingBean
83 @Bean
84 public OIDCC4UILogic oidcc4UILogic(
85 @Qualifier("oidcClientCacheLogin")
86 final OIDCClientCache oidcClientCacheLogin,
87 @Qualifier("oidcClientCacheLogout")
88 final OIDCClientCache oidcClientCacheLogout,
89 final AuthDataAccessor authDataAccessor,
90 final AccessTokenDataBinder accessTokenDataBinder,
91 final OIDCC4UIProviderDAO opDAO,
92 final OIDCUserManager userManager) {
93
94 return new OIDCC4UILogic(
95 oidcClientCacheLogin,
96 oidcClientCacheLogout,
97 authDataAccessor,
98 accessTokenDataBinder,
99 opDAO,
100 userManager);
101 }
102
103 @ConditionalOnMissingBean
104 @Bean
105 public OIDCC4UIProviderLogic oidcc4UIProviderLogic(
106 @Qualifier("oidcClientCacheLogin")
107 final OIDCClientCache oidcClientCacheLogin,
108 @Qualifier("oidcClientCacheLogout")
109 final OIDCClientCache oidcClientCacheLogout,
110 final OIDCC4UIProviderDAO opDAO,
111 final OIDCC4UIProviderDataBinder binder) {
112
113 return new OIDCC4UIProviderLogic(oidcClientCacheLogin, oidcClientCacheLogout, opDAO, binder);
114 }
115 }