Advertisement
Guest User

Untitled

a guest
Nov 7th, 2018
2,913
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.05 KB | None | 0 0
  1. package com.stackoverflow.keycloak.custom;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7.  
  8. import org.keycloak.models.AuthenticatedClientSessionModel;
  9. import org.keycloak.models.KeycloakSession;
  10. import org.keycloak.models.ProtocolMapperModel;
  11. import org.keycloak.models.UserSessionModel;
  12. import org.keycloak.protocol.ProtocolMapperUtils;
  13. import org.keycloak.protocol.oidc.OIDCLoginProtocol;
  14. import org.keycloak.protocol.oidc.mappers.AbstractOIDCProtocolMapper;
  15. import org.keycloak.protocol.oidc.mappers.OIDCAttributeMapperHelper;
  16. import org.keycloak.provider.ProviderConfigProperty;
  17. import org.keycloak.representations.AccessToken;
  18. import org.keycloak.representations.IDToken;
  19.  
  20. public class CustomOIDCProtocolMapper extends AbstractOIDCProtocolMapper{
  21.  
  22. public static final String PROVIDER_ID = "oidc-customprotocolmapper";
  23.  
  24. private static final List<ProviderConfigProperty> configProperties = new ArrayList<ProviderConfigProperty>();
  25.  
  26. /**
  27. * Maybe you want to have config fields for your Mapper
  28. */
  29. /*
  30. static {
  31. ProviderConfigProperty property;
  32. property = new ProviderConfigProperty();
  33. property.setName(ProtocolMapperUtils.USER_ATTRIBUTE);
  34. property.setLabel(ProtocolMapperUtils.USER_MODEL_ATTRIBUTE_LABEL);
  35. property.setHelpText(ProtocolMapperUtils.USER_MODEL_ATTRIBUTE_HELP_TEXT);
  36. property.setType(ProviderConfigProperty.STRING_TYPE);
  37. configProperties.add(property);
  38.  
  39. property = new ProviderConfigProperty();
  40. property.setName(ProtocolMapperUtils.MULTIVALUED);
  41. property.setLabel(ProtocolMapperUtils.MULTIVALUED_LABEL);
  42. property.setHelpText(ProtocolMapperUtils.MULTIVALUED_HELP_TEXT);
  43. property.setType(ProviderConfigProperty.BOOLEAN_TYPE);
  44. configProperties.add(property);
  45.  
  46. }
  47. */
  48.  
  49. @Override
  50. public List<ProviderConfigProperty> getConfigProperties() {
  51. return configProperties;
  52. }
  53.  
  54. @Override
  55. public String getDisplayCategory() {
  56. return TOKEN_MAPPER_CATEGORY;
  57. }
  58.  
  59. @Override
  60. public String getDisplayType() {
  61. return "Stackoverflow Custom Protocol Mapper";
  62. }
  63.  
  64. @Override
  65. public String getId() {
  66. return PROVIDER_ID;
  67. }
  68.  
  69. @Override
  70. public String getHelpText() {
  71. return "some help text";
  72. }
  73.  
  74. public AccessToken transformAccessToken(AccessToken token, ProtocolMapperModel mappingModel, KeycloakSession session,
  75. UserSessionModel userSession, AuthenticatedClientSessionModel clientSession) {
  76.  
  77. token.getOtherClaims().put("stackoverflowCustomToken", "stackoverflow");
  78.  
  79. setClaim(token, mappingModel, userSession, session);
  80. return token;
  81. }
  82.  
  83. public static ProtocolMapperModel create(String name, boolean accessToken, boolean idToken, boolean userInfo) {
  84. ProtocolMapperModel mapper = new ProtocolMapperModel();
  85. mapper.setName(name);
  86. mapper.setProtocolMapper(PROVIDER_ID);
  87. mapper.setProtocol(OIDCLoginProtocol.LOGIN_PROTOCOL);
  88. Map<String, String> config = new HashMap<String, String>();
  89. mapper.setConfig(config);
  90. return mapper;
  91. }
  92.  
  93.  
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement