29 | * To Read-Only Map 30 | *
31 | * 32 | * @return 33 | */ 34 | public Map
42 | * Extract local name from obj, whether it's javax.xml.bind.JAXBElement or org.w3c.dom.Element;
43 | *
58 | * Extract text content from obj, whether it's javax.xml.bind.JAXBElement or org.w3c.dom.Element;
59 | *
obj according to types listed in strFuncs keys, then extract some string part from it according
74 | * to the extract function specified in strFuncs values.
75 | *
76 | * @param obj
77 | * @param strFuncs
78 | * @return
79 | */
80 | private static
36 | 3. Navigate to Themes **Important!!! You have to do this on master realm**
37 | 4. Switch Admin Console Theme to keycloak-extended
38 | 5. Signout
39 | 6. Login with your admin credentials
40 | 7. Navigate to Identity Providers
41 | 8. Add provider CAS
42 | 9. Configure CAS provider
43 | 10. Click Save
44 | 11. Navigate to Mappers to get Attributes from CAS
45 | 12. Configure Attribute Mapper for email, firstName, lastName
46 | 13. Signout and Central Authentication Service should be available
47 |
48 | Optional Central Authentication Service Configuration
49 | --------------------------------------------
50 | 1. Login with your admin credentials
51 | 2. Navigate to Authetication
52 | 3. Click on Actions/Config for Identity Provider Redirector
53 | 4. Set Alias and Default Identiy Provider to ```cas```
54 | 5. Signout and now you are automatically redirected to CAS for Login
55 |
56 |
57 | **Have fun!**
58 |
--------------------------------------------------------------------------------
/src/main/java/io/github/johnjcool/keycloak/broker/cas/mappers/AttributeToRoleMapper.java:
--------------------------------------------------------------------------------
1 | package io.github.johnjcool.keycloak.broker.cas.mappers;
2 |
3 | import io.github.johnjcool.keycloak.broker.cas.CasIdentityProviderFactory;
4 |
5 | import java.util.ArrayList;
6 | import java.util.List;
7 |
8 | import org.keycloak.broker.provider.BrokeredIdentityContext;
9 | import org.keycloak.broker.provider.ConfigConstants;
10 | import org.keycloak.broker.provider.IdentityBrokerException;
11 | import org.keycloak.models.IdentityProviderMapperModel;
12 | import org.keycloak.models.KeycloakSession;
13 | import org.keycloak.models.RealmModel;
14 | import org.keycloak.models.RoleModel;
15 | import org.keycloak.models.UserModel;
16 | import org.keycloak.models.utils.KeycloakModelUtils;
17 | import org.keycloak.provider.ProviderConfigProperty;
18 |
19 | public class AttributeToRoleMapper extends AbstractAttributeMapper {
20 |
21 | protected static final String[] COMPATIBLE_PROVIDERS = { CasIdentityProviderFactory.PROVIDER_ID };
22 |
23 | private static final List