1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.fit.core.reference;
20
21 import org.apache.syncope.common.lib.policy.AccountRuleConf;
22 import org.apache.syncope.core.persistence.api.entity.user.LinkedAccount;
23 import org.apache.syncope.core.persistence.api.entity.user.User;
24 import org.apache.syncope.core.provisioning.api.rules.AccountRule;
25 import org.apache.syncope.core.provisioning.api.rules.AccountRuleConfClass;
26 import org.apache.syncope.core.spring.policy.AccountPolicyException;
27 import org.springframework.transaction.annotation.Transactional;
28
29 @AccountRuleConfClass(TestAccountRuleConf.class)
30 public class TestAccountRule implements AccountRule {
31
32 private TestAccountRuleConf conf;
33
34 @Override
35 public void setConf(final AccountRuleConf conf) {
36 if (conf instanceof TestAccountRuleConf) {
37 this.conf = TestAccountRuleConf.class.cast(conf);
38 } else {
39 throw new IllegalArgumentException(
40 AccountRuleConf.class.getName() + " expected, got " + conf.getClass().getName());
41 }
42 }
43
44 @Override
45 public void enforce(final String username) {
46 if (!username.contains(conf.getMustContainSubstring())) {
47 throw new AccountPolicyException("Username not containing " + conf.getMustContainSubstring());
48 }
49 }
50
51 @Transactional(readOnly = true)
52 @Override
53 public void enforce(final User user) {
54 enforce(user.getUsername());
55 }
56
57 @Transactional(readOnly = true)
58 @Override
59 public void enforce(final LinkedAccount accout) {
60 if (accout.getUsername() != null && !accout.getUsername().contains(conf.getMustContainSubstring())) {
61 throw new AccountPolicyException("Username not containing " + conf.getMustContainSubstring());
62 }
63 }
64 }