{
  "factory": {
    "id": "ldap-jaas-login-module",
    "type": "entaxy.security.jaas.loginmodule",
    "description": "LDAP login module. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
    "isAbstract": false,
    "parent": "abstract-real-jaas-login-module",
    "label": "",
    "category": ""
  },
  "entaxy.security.jaas.loginmodule": {
    "moduleClassName": "org.apache.karaf.jaas.modules.ldap.LDAPLoginModule",
    "#backendFactoryClassName": "org.apache.karaf.jaas.modules.properties.PropertiesBackingEngineFactory"
  },
  "fields": {
  	"connection_protocol": {
  		"type": "String",
  		"required": true,
		"displayName": "Connection Protocol",
		"description": "Defines the protocol (http or https) to be used. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"@TYPEINFO": {
			"type": "enum",
			"values": [
				"ldap",
				"ldaps"
			]
		},
  		"defaultValue": "ldap",
  		"group": "connection"
  	},
  	"connection_host": {
  		"type": "String",
		"description": "The address of the LDAP server. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"required": true,
		"displayName": "Connection Host",
		"defaultValue": "localhost",
  		"group": "connection"
  	},
  	"connection_port": {
  		"type": "Number",
		"description": "The port number used to connect to the LDAP server. For LDAP Active Directory or OpenLDAP port is typically 389 for LDAP connections and 636 for LDAPS connections. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"required": true,
		"displayName": "Connection Port",
  		"defaultValue": 10389,
  		"group": "connection"
  	},
  	"connection_url": {
  		"type": "String",
  		"required": true,
  		"isHidden": true,
  		"@INTERNAL": true,
  		"defaultValue": {
  			"@CALCULATED": {
  				"lazy": false,
  				"expression": "${properties.connection_protocol}://${properties.connection_host}:${properties.connection_port}",
		  		"targetPath": "properties/module_connection.url",
		  		"removeResolved": true
  			}
  		},
  		"group": "connection"
  	},
  	"module_connection.username": {
  		"type": "String",
		"description": "The distinguished name (DN) or user identifier used to authenticate when connecting to the LDAP server. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"required": true,
		"displayName": "Username",
		"group": "connection"
  	},
  	"module_connection.password": {
  		"type": "password",
		"description": "The corresponding password for the provided username, used to authenticate the connection to the LDAP server. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"required": true,
		"displayName": "Password",
		"group": "connection"
  	},
  	"module_authentication": {
  		"type": "String",
		"description": "Authentication protocol: simple - implies that user credentials are supplied, and you are obliged to set the connection.username and connection.password options in this case. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"required": true,
		"displayName": "Module Authentication",
		"@TYPEINFO": {
			"type": "enum",
			"values": [
				"simple"
			]
		},
  		"defaultValue": "simple",
  		"group": "connection"
  	},
	"module_ssl": {
		"description": "Enabled SSL encryption. When checked, the connection will use LDAPS (typically on port 636). For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"type": "Boolean",
		"displayName": "Use SSL", 
		"group": "ssl"
	},
	"module_ssl.provider": {
		"type": "String",
		"displayName": "Provider",
		"description": "The provider name to use for SSL. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"group": "ssl"
	},
	"module_ssl.protocol": {
		"type": "String",
		"displayName": "Protocol",
		"description": "The protocol name to use for SSL (SSL for example). For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"group": "ssl"
	},
	"module_ssl.algorithm": {
		"type": "String",
		"displayName": "Algorithm",
		"description": "The algorithm to use for the KeyManagerFactory and TrustManagerFactory (PKIX for example). For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"group": "ssl"
	},
	"module_ssl.keystore": {
		"type": "String",
		"displayName": "Keystore",
		"description": "The key store name to use for SSL. The key store must be deployed using a jaas:keystore configuration. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"group": "ssl"
	},
	"module_ssl.keyalias": {
		"type": "String",
		"displayName": "Alias",
		"description": "The key alias to use for SSL. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"group": "ssl"
	},
	"module_ssl.truststore": {
		"type": "String",
		"displayName": "Truststore",
		"description": "The trust store name to use for SSL. The trust store must be deployed using a jaas:keystore configuration. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"group": "ssl"
	},
	"module_user.base.dn": {
		"type": "String",
		"required": true,
		"displayName": "User base DN",
		"description": "The LDAP base DN used to looking for user, e.g. ou=user,dc=apache,dc=org. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"group": "lookup"
	},
	"module_user.filter": {
		"type": "String",
		"required": true,
		"displayName": "User filter",
		"description": "The LDAP filter used to looking for user, e.g. (uid=%u) where %u will be replaced by the username. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"defaultValue": "(uid=%u)", 
		"group": "lookup"
	},
	"module_user.search.subtree": {
		"type": "Boolean",
		"required": true,
		"displayName": "Search user in subtree",
		"description": "If 'true', the user lookup will be recursive (SUBTREE). If 'false', the user lookup will be performed only at the first level (ONELEVEL). For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"defaultValue": true, 
		"group": "lookup"
	},
	"module_role.base.dn": {
		"type": "String",
		"required": true,
		"displayName": "Role base DN",
		"description": "The LDAP base DN used to looking for roles, e.g. ou=role,dc=apache,dc=org. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"group": "lookup"
	},
	"module_role.filter": {
		"type": "String",
		"required": true,
		"displayName": "Role filter",
		"description": "The LDAP filter used to looking for user’s role, e.g. (member:=uid=%u). For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"defaultValue": "(member:=uid=%u)", 
		"group": "lookup"
	},
	"module_role.name.attribute": {
		"type": "String",
		"required": true,
		"displayName": "Role name attribute",
		"description": "The LDAP role attribute containing the role string used by Karaf, e.g. cn. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"defaultValue": "cn", 
		"group": "lookup"
	},
	"module_role.search.subtree": {
		"type": "Boolean",
		"required": true,
		"displayName": "Search user in subtree",
		"description": "If 'true', the role lookup will be recursive (SUBTREE). If 'false', the role lookup will be performed only at the first level (ONELEVEL). For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"defaultValue": true, 
		"group": "lookup"
	},
	"module_role.mapping": {
		"type": "String",
		"displayName": "Role mapping",
		"description": "Define a mapping between roles defined in the LDAP directory for the user, and corresponding roles in Karaf. The format is ldapRole1=karafRole1,karafRole2;ldapRole2=karafRole3,karafRole4. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"defaultValue": "", 
		"group": "lookup"
	},	
	"module_initial.context.factory": {
		"type": "String",
		"displayName": "Context factory",
		"description": "Define the initial context factory used to connect to the LDAP server. The default is com.sun.jndi.ldap.LdapCtxFactory. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"group": "others"
	},  	
	"module_ignorePartialResultException": {
		"type": "Boolean",
		"displayName": "Ignore partial result exception",
		"description": "Workaround for Active Directory servers not handling referrals correctly. For more details see <a target=\"_blank\" href=\"https://docs.entaxy.ru/entaxy-core/${project.version}/core/security/security-jaas.html\">Entaxy docs</a> and <a target=\"_blank\" href=\"https://karaf.apache.org/manual/latest/security\">Karaf docs</a>",
		"group": "others"
	}  	
  },
  "outputs": {
    "init": {
      "fields": {
        "@IMPORT": [{
			"sourceFactoryId": "#",
			"location": "fields",
			"prefix": ""        
		}]
      }
    }
  }
}
