summaryrefslogtreecommitdiffstats
path: root/ipsilon/providers/saml2idp.py
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-10-23 11:45:32 -0400
committerPatrick Uiterwijk <puiterwijk@redhat.com>2014-11-12 23:47:15 +0100
commit83da2bf3963db3e4427bced3b4c0681e751e54da (patch)
tree53f03ce8e60d2c68453cdb5fe6be9aad7ce2c362 /ipsilon/providers/saml2idp.py
parent0c14f7600de70baf5b3ee609288207dcdb65e1ae (diff)
downloadipsilon-83da2bf3963db3e4427bced3b4c0681e751e54da.tar.gz
ipsilon-83da2bf3963db3e4427bced3b4c0681e751e54da.tar.xz
ipsilon-83da2bf3963db3e4427bced3b4c0681e751e54da.zip
Refactor plugin configuration
Fork a PluginConfig class out of PluginObject, the base object now supports a simple dictionary config, while using PluginConfig provide access to structured util.config based configuration. Change UI code that deal with plugins configuration to properly use the new structured config objects in order to represent data in appropriate format based on the data type. Use the new util.config objects to represent plugins configuration. Signed-off-by: Simo Sorce <simo@redhat.com> Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Diffstat (limited to 'ipsilon/providers/saml2idp.py')
-rwxr-xr-xipsilon/providers/saml2idp.py84
1 files changed, 42 insertions, 42 deletions
diff --git a/ipsilon/providers/saml2idp.py b/ipsilon/providers/saml2idp.py
index cb2c4a2..8896e16 100755
--- a/ipsilon/providers/saml2idp.py
+++ b/ipsilon/providers/saml2idp.py
@@ -27,6 +27,7 @@ from ipsilon.tools import saml2metadata as metadata
from ipsilon.tools import files
from ipsilon.util.user import UserSession
from ipsilon.util.plugin import PluginObject
+from ipsilon.util import config as pconfig
import cherrypy
import lasso
import os
@@ -126,48 +127,47 @@ class IdpProvider(ProviderBase):
self.description = """
Provides SAML 2.0 authentication infrastructure. """
- self._options = {
- 'idp storage path': [
- """ Path to data storage accessible by the IdP """,
- 'string',
- '/var/lib/ipsilon/saml2'
- ],
- 'idp metadata file': [
- """ The IdP Metadata file genearated at install time. """,
- 'string',
- 'metadata.xml'
- ],
- 'idp certificate file': [
- """ The IdP PEM Certificate genearated at install time. """,
- 'string',
- 'certificate.pem'
- ],
- 'idp key file': [
- """ The IdP Certificate Key genearated at install time. """,
- 'string',
- 'certificate.key'
- ],
- 'allow self registration': [
- """ Allow authenticated users to register applications. """,
- 'boolean',
- True
- ],
- 'default allowed nameids': [
- """Default Allowed NameIDs for Service Providers. """,
- 'list',
- ['persistent', 'transient', 'email', 'kerberos', 'x509']
- ],
- 'default nameid': [
- """Default NameID used by Service Providers. """,
- 'string',
- 'persistent'
- ],
- 'default email domain': [
- """Default email domain, for users missing email property.""",
- 'string',
- 'example.com'
- ]
- }
+ self.new_config(
+ self.name,
+ pconfig.String(
+ 'idp storage path',
+ 'Path to data storage accessible by the IdP.',
+ '/var/lib/ipsilon/saml2'),
+ pconfig.String(
+ 'idp metadata file',
+ 'The IdP Metadata file genearated at install time.',
+ 'metadata.xml'),
+ pconfig.String(
+ 'idp certificate file',
+ 'The IdP PEM Certificate genearated at install time.',
+ 'certificate.pem'),
+ pconfig.String(
+ 'idp key file',
+ 'The IdP Certificate Key genearated at install time.',
+ 'certificate.key'),
+ pconfig.Condition(
+ 'allow self registration',
+ 'Allow authenticated users to register applications.',
+ True),
+ pconfig.Choice(
+ 'default allowed nameids',
+ 'Default Allowed NameIDs for Service Providers.',
+ metadata.SAML2_NAMEID_MAP.keys(),
+ ['persistent', 'transient', 'email', 'kerberos', 'x509']),
+ pconfig.Pick(
+ 'default nameid',
+ 'Default NameID used by Service Providers.',
+ metadata.SAML2_NAMEID_MAP.keys(),
+ 'persistent'),
+ pconfig.String(
+ 'default email domain',
+ 'Used for users missing the email property.',
+ 'example.com'),
+ pconfig.Condition(
+ 'enabled',
+ 'Whether the SAML IDP is enabled',
+ False)
+ )
if cherrypy.config.get('debug', False):
import logging
import sys