Search in sources :

Example 1 with AbstractReadOnlyClientScopeAdapter

use of org.keycloak.storage.client.AbstractReadOnlyClientScopeAdapter in project keycloak by keycloak.

the class OpenshiftSAClientAdapter method createClientScope.

private ClientScopeModel createClientScope(String scope) {
    ClientScopeModel managedScope = realm.getClientScopesStream().filter(scopeModel -> Objects.equals(scopeModel.getName(), scope)).findAny().orElse(null);
    if (managedScope != null) {
        return managedScope;
    }
    Map<String, String> attributes = new HashMap<>();
    attributes.put(ClientScopeModel.DISPLAY_ON_CONSENT_SCREEN, Boolean.valueOf(isConsentRequired()).toString());
    if (component.get(OpenshiftClientStorageProviderFactory.CONFIG_PROPERTY_DISPLAY_SCOPE_CONSENT_TEXT, Boolean.TRUE)) {
        StringBuilder consentText = new StringBuilder("${openshift.scope.");
        if (scope.indexOf(':') != -1) {
            consentText.append(scope.replaceFirst(":", "_"));
        }
        attributes.put(ClientScopeModel.CONSENT_SCREEN_TEXT, consentText.append("}").toString());
    } else {
        attributes.put(ClientScopeModel.CONSENT_SCREEN_TEXT, scope);
    }
    return new AbstractReadOnlyClientScopeAdapter() {

        @Override
        public String getId() {
            return scope;
        }

        @Override
        public String getName() {
            return scope;
        }

        @Override
        public RealmModel getRealm() {
            return realm;
        }

        @Override
        public String getDescription() {
            return scope;
        }

        @Override
        public String getProtocol() {
            return OIDCLoginProtocol.LOGIN_PROTOCOL;
        }

        @Override
        public String getAttribute(String name) {
            return attributes.get(name);
        }

        @Override
        public Map<String, String> getAttributes() {
            return attributes;
        }

        @Override
        public Stream<ProtocolMapperModel> getProtocolMappersStream() {
            return createDefaultProtocolMappers().stream();
        }

        @Override
        public ProtocolMapperModel getProtocolMapperById(String id) {
            return null;
        }

        @Override
        public ProtocolMapperModel getProtocolMapperByName(String protocol, String name) {
            return null;
        }

        @Override
        public Stream<RoleModel> getScopeMappingsStream() {
            return Stream.empty();
        }

        @Override
        public Stream<RoleModel> getRealmScopeMappingsStream() {
            return Stream.empty();
        }

        @Override
        public boolean hasScope(RoleModel role) {
            return false;
        }
    };
}
Also used : HashMap(java.util.HashMap) AbstractReadOnlyClientScopeAdapter(org.keycloak.storage.client.AbstractReadOnlyClientScopeAdapter) ClientScopeModel(org.keycloak.models.ClientScopeModel) RoleModel(org.keycloak.models.RoleModel) ProtocolMapperModel(org.keycloak.models.ProtocolMapperModel)

Aggregations

HashMap (java.util.HashMap)1 ClientScopeModel (org.keycloak.models.ClientScopeModel)1 ProtocolMapperModel (org.keycloak.models.ProtocolMapperModel)1 RoleModel (org.keycloak.models.RoleModel)1 AbstractReadOnlyClientScopeAdapter (org.keycloak.storage.client.AbstractReadOnlyClientScopeAdapter)1