1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.wa.starter.mapping;
20
21 import java.util.stream.Collectors;
22 import java.util.stream.Stream;
23 import org.apache.commons.lang3.StringUtils;
24 import org.apache.syncope.common.lib.policy.AccessPolicyConf;
25 import org.apache.syncope.common.lib.policy.AccessPolicyTO;
26 import org.apache.syncope.common.lib.policy.DefaultAccessPolicyConf;
27 import org.apereo.cas.services.DefaultRegisteredServiceAccessStrategy;
28 import org.apereo.cas.services.RegisteredServiceAccessStrategy;
29
30 public class DefaultAccessMapper implements AccessMapper {
31
32 @Override
33 public boolean supports(final AccessPolicyConf conf) {
34 return DefaultAccessPolicyConf.class.equals(conf.getClass());
35 }
36
37 @Override
38 public RegisteredServiceAccessStrategy build(final AccessPolicyTO policy) {
39 DefaultAccessPolicyConf conf = (DefaultAccessPolicyConf) policy.getConf();
40
41 DefaultRegisteredServiceAccessStrategy accessStrategy =
42 new DefaultRegisteredServiceAccessStrategy(conf.isEnabled(), conf.isSsoEnabled());
43
44 accessStrategy.setOrder(conf.getOrder());
45
46 accessStrategy.setRequireAllAttributes(conf.isRequireAllAttributes());
47
48 accessStrategy.setCaseInsensitive(conf.isCaseInsensitive());
49
50 accessStrategy.setUnauthorizedRedirectUrl(conf.getUnauthorizedRedirectUrl());
51
52 conf.getRequiredAttrs().forEach(
53 (k, v) -> accessStrategy.getRequiredAttributes().put(k,
54 Stream.of(StringUtils.split(v, ",")).map(String::trim).collect(Collectors.toSet())));
55
56 conf.getRejectedAttrs().forEach(
57 (k, v) -> accessStrategy.getRejectedAttributes().put(k,
58 Stream.of(StringUtils.split(v, ",")).map(String::trim).collect(Collectors.toSet())));
59
60 return accessStrategy;
61 }
62 }